おうさまのみみはロバのみみ

ネット上での木の洞

Swiftのfallthrowが素晴らしい

詳細はあとで書く。
とりあえず昨日「The Swift Programing Language」読んでてちょっと感動というか、これがまれにしたいことがあってその機能が実装されてる!!!ってテンションあがったということだけ報告しておく。

switch case文周りは割りとボクの中で評価高い実装になっててSwift勉強して良かった感ある。

あとで書いた。

ボクが素晴らしいと感じて勢いで書いていたのだけどもよく考えたらタイトルがおかしかった。
正確にはSwiftのswitch case文が素晴らしいだな。

素晴らしいと感じたいくつかのこと

  1. fallthrowで特定の処理の場合だけdefaultと同じ処理を実行したい
switch(value) {
case "1":
    //ココで処理を実装したあとdefaultに飛ぶ
    fallthrow
case "2":
    //ココは通らない
    break
default:
    //value=1の時case "1"の処理の後ここにくる
    println("ココに来ますよっと")
    break
}

たまにしか使わないんだけどもこういうことがしたいことが稀にある。
そういう時に今まではswitch文を抜けた後でフラグ的な変数で値を判定してゴニョゴニョしてたんだけども
気持ちの悪い書き方だなと感じていたのでfallthrowが実装されて、
自分がやりたかったことが実装されていてちょっと感動した。

  1. caseに複数の条件を指定できる
switch(value) {
case "1", "3", "5", "7", "9":
    println("奇数だよ")
    break
case "2", "4", "6", "8", "10":
    println("偶数だよ")
    break
default
    break
}

最近のモダンな言語なら出来るのかもしれないけども
PHPerなのでたまにこういう書き方がしたいことがるんだけども
↓みたいな書き方をしていてスマートじゃないなぁと普段から思っていた。
(というかあまりPHPでswitch caseを使う利点がないような気がしていた…。)

switch ($value) {
case "1":
case "3":
case "5":
    println("奇数だよ");
    break;

モダンな言語だと当たり前の実装なのかもしれないけども個人的にはすごいテンションあがったよってだけの話。
しかしまだ全体の2/7くらいしか読破できてなくて心折れそう。