Swiftでオプショナル型変数に ? と ! でアクセスした際の戻り値の違いについて記載します。
! と ? の違い
値が nil の変数にアクセスした際の挙動が次のように異なります。
アクセス方法 | 戻り値 |
---|---|
?(オプショナルチェイン) | nil が返されます。 |
! (強制アンラップ) | 実行時エラーが発生します。 |
実行例
1 2 3 4 5 6 7 |
let nilStr: String? = nil // オプショナルチェイン print(nilStr?.debugDescription) // nil // 強制アンラップ print(nilStr!.debugDescription) // 実行時エラー |
実行時エラーはデバッグも行いづらいので、強制アンラップの使用は極力さけた方がいいと思います。