オプショナル、nil関連まとめ[Swift]


あとで追記

guard

guard letとif letの使い分け - Qiita
Swift の guard は正しく使いましょう - Qiita
Swift 2.0 で追加された guard のいいところ - Qiita

まとめ

guard letは値がnilかどうかのチェック・アンラップを同時に行える
guard let {}nilならスコープ内で処理を止められる

型?

エラー文

before.swift
.map { [weak self] huga -> String in
           guard let hoge = huga else { return nil } //ここなんでnilつけるん
           //省略
           return hogehogeString
     }
'nil' is incompatible with return type 'String'

Stringだとnilは存在できません(許容できません)

after.swift
.map { [weak self] huga -> String? in
           guard let hoge = huga else { return nil } //ここなんでnilつけるん
           //省略
           return hogehogeString
     }

nilが入っても大丈夫なString?にすることでエラー解消