知らなくて損したSwiftのOptional型の演算子

松山事務所の石丸です。
今回は知らなくて損した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つの演算子紹介でした。

TOP
TOP