if letの使い方[Swift4対応]

swift if letの使い方

今回はnil判定によく使う if let の使い方について調べてみます。

if let を理解するための前提条件として、nil、とoptionalについて先に解説しています。最後まで是非読んで見てください。

前提① Swiftは基本nilを許容しません。

nilとは

nilとはjavaなどでいうnulllのことで、値を持たないもの、存在がないもののようなイメージでOKです。

Swiftではnilが許容されていません。


上のようなシンプルなものであれば、そもそもnilになることなんてないと思いますよね。

ただコード量や処理が多くなれば、どこかで問題が起きて、値が入ってないことは良く起こります。

そしてnilであればエラーが起こりアプリが落ちます。Swiftではこれを避けるためにOptional型が用意されています。

前提② Optional型を使えばnilを許容できる

Optional型とは

SwiftのOptional型は値のない変数などを扱うことのできるものです。

要はnilを扱えるものです。

書き方は、変数の後ろに?をつけます。

String?やInt?を使うことで、Optional型のStringやIntになり、上の例ではエラーだったのに、今回は大丈夫になりました。

Optional型では、

  • 値がない -> nil
  • 値がある -> Optional(22) など数字や文字列が入る

ということですね。



if let って何? いつ使うもの?

ここから本題のif letについて話していきます。

if let とは何か。

値がnilの可能性があるものを取り出したい時です。

上でみてきたように、nilを取り出そうとするとSwiftではエラーが起こりアプリが落ちます。if letはこれを避けるために使うものです。

if let -> 値がnilでなければ

のようなイメージです。

例①

例②

例①では、var ageに値が入っておりnilでないため、print(studentA_age)が行われている。

例②では、var ageに値が入っていなくてnilであるため、print(studentA_age)は行われていない。

例②はnilでエラーが起こるのを回避しています。

もしif let を使っていなければ②のコードではアプリが落ちます。

まとめ: Swiftのif letはnilを回避できる

ここまで、Swiftのif letの使い方をみてきました。上の例で説明してきたようにnilの可能性があるものにif letを使うことで、もしnilであっても処理を行わず、アプリが落ちるのを回避できます。

アプリが落ちるのは何としても避けないといけないので、if letしっかり使っていきましょう〜

以上です。

未経験からエンジニアなりませんか?:社会人転職コース

参考:

https://docs.swift.org/swift-book/LanguageGuide/OptionalChaining.html

https://medium.com/@abhimuralidharan/if-let-if-var-guard-let-and-defer-statements-in-swift-4f87fe857eb6

https://qiita.com/rd0501/items/7d82251370b9c62b88f4