! を使うことでアンラップすることができるけど、値がnilだった場合はエラーになるよ。
そんなときに、 オプショナルバインディング(Optional Binding) を使うことで安全にアンラップできるよ。
Swiftでオプショナルバインディング(Optional Binding)を使って安全にアンラップする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
let hoge:String? hoge = "Swift" if let fuga = hoge { print(fuga) // "Swift" } else { print("nilだよ") } let hoge2:String? hoge2 = nil if let fuga2 = hoge2 { print(fuga2) } else { print("nilだよ") // nilだよ } |
こんな感じでオプショナルバリューがnilでなければ、一時変数(ここではfuga)に代入されて、nilのときにはfalseが返るようになってるよ。
これはguard文でももちろん使えるよ。