松山事務所の石丸です。
今回は知らなくて損したSwiftのOptional型の演算子について書いてみました。
Swiftのバージョンは2.2になります。
比較演算子
例えば、「Optionalでラップされている値」に応じて処理を分岐したい次のようなコード。
let result = Optional(true) if let value = result where value { print("success") }
if letで値を取り出してwhereで評価するOptional Bindingを使用したコードですが、もっと簡潔に次のように書くことができます。
let result = Optional(true) if result == true { print("success") }
いちいちresultの中身を取り出さなくても、「Optionalでラップされている型と、同じ型の値」は比較が出来るんですね。
もちろん!=演算子も定義されています。
nil結合演算子
例えば、「nilでないならその値を、nilの場合はデフォルト値」を表示したい次のようなコード。
let value = Optional("value") if let value = value { print(value) } else { print("default value") }
これもOptional Bindingを使って分岐しつつ値を取り出していますが、nil結合演算子を使えば次のように書けます。
let value = Optional("value") print(value ?? "default value")
valueがnilでない場合はOptionalでラップされたvalueの中身を、valueがnilの場合は”default value”が表示されます。
以上、Optional型をもっと好きになれる2つの演算子紹介でした。