Swift プログラミング ガイドの 35 ページにある「実験」を実装しようとすると、Xcode プレイグラウンドで非常に奇妙なエラーが発生します。メソッドでは、最も内側のループでpokerDeck
始まる行で、エラーが発生します。どのように/なぜオプションですか?let card...
Value of optional type 'Rank?' not unwrapped
Rank
struct Card {
var rank : Rank
var suit : Suit
init(rank : Rank, suit : Suit) {
self.rank = rank
self.suit = suit
}
func pokerDeck() -> Card[] {
let suits = [Suit.Spades, Suit.Clubs, Suit.Hearts, Suit.Diamonds]
var deck = Card[]()
for suit in suits {
for r in 1 ... 13 {
let card = Card(rank: Rank.fromRaw(r), suit: suit) // ERROR
deck += card
}
}
return deck
}
}
Xcode によって提案された修正は、追加することです!
let card = Card(rank: Rank.fromRaw(r)!, suit: suit)
これにより、問題はさらに複雑になります。