有条件的运算符在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有竞争哲学的例子:
- 简明扼要
- 不要冗余
既然所有的操作都返回一个结果,那么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
这实际上是不正确的,检查评论。