私は"Nil Coalescing Operator"について説明するときに、マリー・アントワネットのメタファーを使う。
Nil Coalescing Operator は、
(a ?? b)
と書き、a != nil ? a! : b
のSyntaxSugarであるとされる。
Sugarと言えば砂糖。砂糖といえばお菓子。
かの有名なセリフは以下のコードで表すことが出来る。
var bread :Food?
let cake :Food = Food(name: "brioche")
(bread ?? cake).eat() // パンが無ければお菓子を食べればいいじゃない!
蛇足
ちなみに個人的にはこの糖衣構文はやり過ぎではないかと思う。
ScalaのOption型のgetOrElse(defaultValue)
の方が可読性の面で良い気がする。
Objective-Cは[]が多すぎてひかれる言語、Swiftは記号(!、?)が多すぎてひかれる言語、なんてことにならねば良いのだが。