More than 1 year has passed since last update.

CoffeeScriptでは、?は
「?の手前の値が存在するかチェックするコード」
に変換するためのものだから、
三項演算子にコンパイルするすべがないと思ってたけど、
普通にあった。

val = a ? b : c #思った通りには変換されない
val = if a then b else c #三項演算子に変換!

「if a then b else c」は普通のif文に変換なのだけど、
変数に代入するように書くと三項演算子にコンパイルされる!

番外編
aが存在するときはa、ないときはbを代入みたいなことってよくありますね。

val = if a then b #意図しない三項演算子に変換される。
val = a ? b #(ちょっと丁寧なチェックをする)意図したコードに変換される。

どうぞお試しください。