我正在尝试制作纸牌游戏,并希望将牌归还到牌堆顶部。这是套牌的创建:
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 只是为了得到语法错误。那么如何将其转换为字符串呢?
你的
func getFirstCard()
删除了第一张卡并将其归还,它没有get
第一张卡。要获得第一张卡,请使用cards.first
。将其作为字符串返回
正如您所描述的,在您的 class Deck
: 中使用此功能
func getFirstCardAsString() -> String {
if let firstCard = cards.first {
return firstCard.val + firstCard.suit
}
return ""
}