🕊

[Swift] 強制アンラップを返す関数の注意点

2021/12/25に公開

強制アンラップを返す関数の注意点

強制アンラップを返す関数で nil を返すような処理を書くとコンパイルエラーにはならずに実行時エラーになります。

環境:Xcode 12.5.1

サンプル
func testA() -> Int! {
    return 0
}

func testB() -> Int! {
    return nil // nilを返却してもコンパイルエラーにはならない
}

let hogeA: Int = testA() // 変数宣言時に!をつけなくてもコンパイルは通る
let hogeB: Int = testB() // 変数宣言時に!をつけなくてもコンパイルは通るが、実行時にエラーになる

なので、そもそも強制アンラップを返す関数は使うのはやめたほうがいいです。

GitHubで編集を提案

Discussion