javascript - example - js coffee




CoffeeScript中的三元操作 (4)

Coffeescript 不支持 JavaScript三元運算符。 這是coffeescript作者的原因:

我喜歡三元運算符,就像下一個人一樣(實際上可能多一點),但語法並不是它們的優點 - 它們非常棒,因為它們可以適合作為一個單行的if / else表達。

他們的語法只是另一個難以記憶的神奇魔法,與語言中的其他任何東西都不相似。 結果是一樣的, if/elses總是看起來相同(並且總是被編譯成表達式),我寧願擁有if/elses

因此,在CoffeeScript中,即使多行ifs也會在適當的時候編譯成三元組,如果if語句沒有else子句:

if sunny   
  go_outside() 
else   
  read_a_book().

if sunny then go_outside() else read_a_book()

兩者都成為三元組,兩者都可以用作表情。 它是一致的,沒有新的語法可以學習。 所以,感謝您的建議,但我將這張票關閉為“wontfix”。

請參閱github問題: github.com/jashkenas/coffeescript/issues/11#issuecomment-97802github.com/jashkenas/coffeescript/issues/11#issuecomment-97802

我需要設定一個值,取決於一個條件。

用CoffeeScript做這件事最簡單的方法是什麼?

例如,這是我在JavaScript中做的事情:

a = true  ? 5 : 10  # => a = 5
a = false ? 5 : 10  # => a = 10

多行版本(例如,如果您需要在每行之後添加註釋):

a = if b # a depends on b
then 5   # b is true 
else 10  # b is false

幾乎所有的語言都應該這樣做:

a = true  && 5 || 10
a = false && 5 || 10

由於一切都是一個表達式,因此產生一個值,你可以使用if/else

a = if true then 5 else 10
a = if false then 5 else 10

你可以here看到更多關於表達式的例子





ternary-operator