Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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"

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