我将斯坦福纸牌游戏教程的 Objective C 代码翻译成 Swift 并在 Playground 中玩耍以查看它。
但是,当我调用 PlayingCard 实例的属性获取器时,Playground 会在结果前面加上“some”:
class PlayingCard:Card{
var suit:String? = "?"
var rank:Int?
func getSuit() -> String{
return self.suit!
}
func setSuit(suit:String){
let validity_check = self.validSuits.contains(suit)
if validity_check{
self.suit = suit
}
}
func setRank(rank:Int){
if rank <= maxRank{
self.rank = rank
}
}
}
var array:Array = ["hi", "world"]
array.contains("HI")
let cardtest = PlayingCard()
cardtest.suit => returns {some "spade"}
cardtest.getSuit() => returns "spade"
cardtest.rank => returns {some 10}
这是什么意思?为什么它在属性 getter 而不是在自定义 getter 函数中返回它?