swiftで if let を使う理由
swiftでnull(nil)チェックを行う際に、下記のようにしてチェックをする事が多いと思います。
if let hoge = nilValue { //nilじゃなかったらー }
この場合、nilValueがnilじゃなかったら中に入るのはわかるのですが、別に下記のように普通にnullチェックしてもいいんじゃあないかって初心者の僕は思うんですよね
if nilValue != nil { //nilじゃなかったらー }
上記の2つとも動作的には同じ(たぶん)なはずなので、わざわざわかりにくい if let の方を使う必要ってなんなんだろうなって思ってたんですが、下記のように、ifの中でnullチェックしたものを使う場合に便利なんですよね。
if let poge = controller.navigationController { poge.hidesBarsOnSwipe = true poge.hidesBarsOnTap = true poge.navigationBarHidden = false poge.popToRootViewControllerAnimated(true) }
上記を if let なしで書くと、下記のようになります。
controller.navigationController?.hidesBarsOnSwipe = true controller.navigationController?.hidesBarsOnTap = true controller.navigationController?.navigationBarHidden = false controller.navigationController?.popToRootViewControllerAnimated(true)
もちろんこれでも動作はするのですが、4度のアンラップ(?)を行ってしまっています。さらに、controller.navigationControllerを何度も書かなくて済みます。
【まとめ】 if let を使う理由は、nullチェックを行った変数をifの中で使用する際に便利だからです。
※説明が間違っている場合や他にも理由がある場合は教えていただけると助かります。