CoffeeScript: switch の 条件分岐


coffeescript での条件分岐です。

switch

switch は次のように書きます。

javascript の switch では括弧が必要ですが、 coffeescript では必要ありません。

C や javascript では、 それぞれの場合を case で分けていましたが、 coffeescript では Ruby と同じように when で分けます。 when の後続の処理は、 1行で書く場合は then の後に書きます。 改行して書く場合は then を書きません、 書くとエラーになります。

when の後には値を複数書くことができます。

javascript の switch では、 when の後に break を書いて、後の処理を行わないように制御していましたが、 coffeescript では break を書く必要がありません。 別の言い方をすれば、フォールスルーができないということになります。

when で記述したどの条件・値にも当てはまらなかった場合は else のところの処理が行われます。 else の後の処理は、 1行で書く場合でも then を書きません。

また、 when の中には条件文を書くこともできます。 また、 switch 自身が値を返すので、 変数にswitchの結果を代入するような書き方もできます。

注意

次のような書き方には注意しましょう。

when の後に true/false で評価する条件文を書くときは、 switch の後に式をかかないようにしましょう。 (さらに詳しいことは、javascript にどのように変換されるのかを追うとわかります。)