【Swift】「?」「!」Optional、初心者向はまずこう覚えましょう

初心者がよく悩む Tips!

Swift を学び始めて苦労するのが「 ?」 と「 !」 の扱い方だと思います。

多くのサイトにて詳しい説明がありますが、プログラムの初心者にとっては苦労するのではないでしょうか?

最初はこう理解すればいいよ的な説明をしたいと思います。

徐々にプログラムの知識が向上したら、後に正確な「Optional」を必ず理解覚しましょう。

プログラムを諦めないための初心者向け Tips になります。

特別理由がない場合は ?も!も付けません。

バグ、クラッシュを避ける為、可能な限りこちらで実装します。

特に理由がない限り必ず初期化時に値を代入しましょう。

var testString1: String = "あいうえお"

次にどうしても nil を代入したい場合

「?」を付けましょう。

後から nil を代入したい場合も同様です。

ただし、「?」をつけた場合は呼び出し時に「nil」を必ずチェックすることになります。

var testString2: String? = nil

var testString2: String? = "あいうえお"
if testString2 != nil {
    print("Stfing is \(testString2!)")
}

var testString3: String? = "あいうえお"
if let number = testString3 {
    print("Stfing is \(testString3)")
}

var testString4: String? = "あいうえお"
if testString4?.hasPrefix("あいう") ?? false {
    print("No あいう")
}

次に上記での nil チェックをどうしても行いたくない場合

「 !」を利用します

ただし、コンパイルは可能ですが、実行時に変数が「nil」であった場合、アプリが落ちますので注意してください。

var testString5: String! = "あいうえお"
print("Stfing is \(testString5)")

最後に

上記の順番にて実装することで文法的に悩まず、バグ、クラッシュを最小限に抑えることができます。

ただ、プログラムは多種多様なので、確率的に初心者の作成したプログラムが正常に動く可能性が高いと思った方が良いでしょう。

こちらを参考に可能な限り?と!を利用せず実装しましょう。

プログラマの腕が上がるにつれて使い分けを理解できるようになります。

諦めずにプログラムを完成させることがまずは重要だと思います。

なれたら正確に文法等を必ず覚えましょう。

タイトルとURLをコピーしました