読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

livescriptの条件判定文は程よく気色が悪い

livescript

livescriptにも、Rubyでいうところのcase文が存在します。

直感的な記法は次の通り。

x = 2
str = switch x
case 1 then "re:1"
case 2 then "re:2"
default "none"

私のようなRuby文化圏の人間には気味の悪い構文なので
coffeeScriptのように

str = switch x
when 1 then "re:01"
when 2 then "re:02"
else                 "none"

さらに、エイリアスにより以下のようにも書き下すことができます。

x = 9
str = switch x
| 1 => "re:01"
| 2 => "re:02"
| otherwise => "none"

……こんなもの初見でみてもわからないですね。
さらに、上の例は

x = 2
str = | x == 1=> "re:01"
         | x == 2 => "re:02"
         | otherwise => "none"

とswitchすら消し去ることもできます。

また、どういうわけかswitch構文は関数にも持たすことができるため

fnc = (x) ->  | typeof! x == "Number" => "Num"  
                      | typeof! x == "String"    => "Str"

fnc("8")
#=> "Num"

とかいう、実に気色の悪いことができます。
もう無茶苦茶ですね(白目