

Swiftに関する質問です。  
下記のコードが何故結果のようになるのかわかりません。

if let n = maybe のところはnという変数に変数maybeを代入しているんでしょうか？？  
詳しい方、ご教示ください。よろしくお願いいたします。

[code]

    var maybe : Int? = 1
    if let n = maybe {
      n + 1
      // 2
    }
    
[/code]


CC BY-SA 3.0
2015-03-01T14:02:49.503
7284
2015-03-01T14:41:17.537
2015-03-01T14:41:17.537
3639
8619
question
ios swift
Swiftのif文での代入に関する質問です。


> if let n = maybe のところはnという変数に変数maybeを代入しているんでしょうか？？

`let`ですので、`n`は変数ではなく定数ですが、代入しているという理解で正しいです。

この構文は`Optional Binding`といって、代入結果が`nil`の場合then節を実行しないという特徴があります。

[code]

    var maybe : Int? = nil
    if let n = maybe {
      n + 1
      // do nothing
    }
    
[/code]


CC BY-SA 3.0
2015-03-01T14:18:30.483
7287
2015-03-01T14:18:30.483
5337
7284
answer