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 にどのように変換されるのかを追うとわかります。)