如何在 Swift 中返回对象数组中的第一个元素并将其转换为字符串?

问题描述 投票:0回答:1

我正在尝试制作纸牌游戏,并希望将牌归还到牌堆顶部。这是套牌的创建:

struct Card{
    let val: String
    let suit: String
}

class Deck{
    var cards: [Card] = []
    
    init(){
        let vals = ["2","3","4","5","6","7","8","9","10","J","Q","K","A"]
        let suits = ["Spades","Clubs","Hearts","Diamonds"]
        
        for suit in suits{
            for val in vals{
                cards.append(Card(val:val, suit:suit))
            }
        }
    }

我创建了一个 getFirstCard 函数:

func getFirstCard() -> Card{
        return cards.removeFirst()
    }

当它起作用时,它会返回 Card 对象:

Card(val: "2", suit: "Spades")

我的问题是我希望它作为“数字+花色”的字符串返回,因此在本例中为“2Spades”。我还尝试返回 Card.val 和 Card.suit 只是为了得到语法错误。那么如何将其转换为字符串呢?

arrays swift string object
1个回答
1
投票

你的

func getFirstCard()
删除了第一张卡并将其归还,它没有
get
第一张卡。要获得第一张卡,请使用
cards.first
。将其作为字符串返回 正如您所描述的,在您的
class Deck
:

中使用此功能
 func getFirstCardAsString() -> String {
     if let firstCard = cards.first {
         return firstCard.val + firstCard.suit
     }
     return ""
 }
© www.soinside.com 2019 - 2024. All rights reserved.