私は整数の配列に変換する必要がある文字列の配列を持っています。For Caseステートメントのオプション文
import Foundation
let strings = ["One", "2", "Three", "4", "Five", "6"]
let integers = strings.map{Int($0)}
// :Using Optional Binding in a FOR Case Statement
for case let val? in integers {
print("\(val)")
}
上記のFor Caseステートメントでは、[Int?]配列の任意の値とパターンマッチングを行っています。コンセプトについての私の理解は、配列はオプションのint配列なので、使用する前に戻り値をラップする必要がありますが、For Caseステートメントでオプションのバインディングを使用しているため、値が変数valにラップされません"しかし、変数 "val"自体はオプションの変数のように見えます。これは、print文で値を再度ラップ解除する必要がありますが、エラーになります: "非オプション型 'Int'のアンラップ値を強制できません。 "val"はオプションの変数ではありません。
これは本当に混乱しています。誰かが "?"を使用しているときに変数 "val"がオプションの変数ではない理由を説明できますか?それと !!
おかげで、 Ujjwal