yashiganiの英傑になるまで死ねない日記

週末はマスターバイクでハイラルを走り回ります

unwrapして値を棄てるときを少し小洒落たかんじに

たまにunwrapするけど,必要なのはその有無でそのままそれを棄てることがあります. こういうときです.

if let a = some {
    print("some is .Some")
}

このままだとXcodeに,aを使ってないから_に変えろって怒られたりしてゲンナリ………オシャレ感ゼロです. そんなとき,パターンマッチを使うとちょっと小洒落たかんじになります.

if case .Some = some {
    print("some is .Some")
}

同様に,nilかどうかを確かめたいときもsome == nilよりパターンマッチを使うほうが小洒落てます.

if case .None = some {
    print("some is .None")
}

最近Swiftを始めた同僚がif caseなんてあるんですねって言ってたときに,「あんま使わねーな」とおもってたんですけど,それから意識してみると小洒落たコードが書けました.

追記

次の日また別の同僚と話していたら,「SwiftってOptionalの存在を極力隠しているからnilとの比較のほうがよくない?」って言われました. たしかに,Optionalの正体を知っていると別になんともないコードなんですが,そうでないと読み解くのが難しいかもしれません. 別段パターンマッチが必要な場面ではありませんしnilとの比較のほうが凡庸なので,普段はそっちを使ったほうがいいなとおもいました. オシャクソ野郎は使え. こちらからは以上です.