if let 変数 と guard let 変数

if let a = myFunc() {成功したらやること} else {失敗したらやること}

なお、myFunc()は、成功時は値を返して、失敗時はnil(NULLのこと)を返すように実装する。 これで、通常動作と失敗時の動作が両方書ける。なお、失敗時はaにはnilが入る。

if guard let a = myFunc() else {中断; returnとかexit(-1)とか}

成功時は処理を続けるが、失敗したら処理が続けることができない時の実装形式。 myFunc()は、成功時は値を返して、失敗時はnil(NULLのこと)を返すように実装する。 aには値しか入らない。nilが入ることはなく、失敗時は次の処理ができない。

失敗と成功の処理をしっかり書きなさいというルールです。 なお、if let a = の方は、aがnilかもしれないので、aの値を普通に使おうとすると、 nilを考えてないぜ! っというビルドエラーになる。