はじめに
guard文を使用していて「!?」と思ったことがあったので記録しておきます。
パターン1
このパターンはurl
のnil
チェックをしています。
nil
の場合はelse節が実行され、nil
でない場合は下に処理が移ります。
この例ではurl
はnil
なのでprint("❌: URLが見つかりませんでした")
が実行されます。
let url: URL? = nil
guard let url else { return print("❌: URLが見つかりませんでした") }
print("✅: \(url)")
パターン2
このパターンはbool
の真偽チェックをしています。
false
の場合はelse節が実行され、true
の場合は下に処理が移ります。
この例ではbool
はfalse
なのでprint("❌: false")
が実行されます。
let bool: Bool = true
guard bool else { return print("❌: false") }
print("✅: \(bool)")
おわり
let
がないだけで変わりすぎでしょ。
パターン2に関してはif文でよくないですか?
if文とどういった使い分けをするのか気になります。