有条件的运算符在Coffeescript中

我真的很喜欢这个:

var value = maxValue > minValue ? minValue : maxValue; 

Coffescript中有没有同样简洁的内容?

 value = if maxValue > minValue then minValue else maxValue 

在javascript和coffeescript中有一个简洁的选项:)

 value = Math.min(minValue, maxValue) 

正如RăzvanPanda指出的,我的评论实际上可能是更好的答案之一:

 value = `maxValue > minValue ? minValue : maxValue` 

这是一个感觉CoffeeScript有竞争哲学的例子:

  1. 简明扼要
  2. 不要冗余

既然所有的操作都返回一个结果,那么if / then / else的做事方式就会给你所需要的东西。 添加?/:运算符是多余的。

这是我希望他们给我们的三元运算符,即使它是多余的…它只是比if / then / else变体更好。

只是我的2C。

你可以这样写:

 value = if maxValue > minValue then minValue else maxValue 

它会像你的代码一样编译。

以下是事实:

在文档中,有一个标题为“条件,三元和有条件分配”的部分 。 这导致人们相信咖啡文本支持

 condition ? when-true : when-false 

但事实上并非如此。

以下是有关解决此问题的补丁的信息

这是补丁(并推送到coffeescript.org ):

http://github.com/jashkenas/coffee-script/commit/ec2d358ae3c82e9888c60695d7cce05edde0c55a

例子:

 mood = greatlyImproved if singing if happy and knowsIt clapsHands() chaChaCha() else showIt() date = if friday then sue else jill options or= defaults 
 value = maxValue > minValue && minValue || maxValue 

这实际上是不正确的,检查评论。