let myNumber = Int(possibleNumber)
// Here, myNumber is an optional integer
if let myNumber = myNumber {
    // Here, myNumber is a non-optional integer
    print("My number is \(myNumber)")
}

変数のシャドウイングって、いまいち御利益が腑に落ちないというか、単に可読性を落とすだけの仕組みなんじゃないかという気がしているんだけど、ここまで来ると、まあ存在意義がわからなくもないかなという気もする。

if let myNumber {
    print("My number is \(myNumber)")
}

しかし、これ見てパッと見、「ああ、optionalは例外的に真偽値への暗黙の型変換を許す設計なのかなと思ってたけど、まさかただのショートハンドだとは。

Taiju Muto @tai2