Coffeescript中的条件运算符

时间:2011-11-17 16:13:34

标签: coffeescript conditional-operator

我真的很喜欢这个:

var value = maxValue > minValue ? minValue : maxValue;

Coffeescript中是否有同样简洁的内容?

7 个答案:

答案 0 :(得分:130)

value = if maxValue > minValue then minValue else maxValue

答案 1 :(得分:20)

javascript和coffeescript中都有 more 简洁选项:)

value = Math.min(minValue, maxValue)

答案 2 :(得分:12)

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

value = `maxValue > minValue ? minValue : maxValue`

答案 3 :(得分:10)

这种情况让CoffeeScript感受到竞争的理念:

  1. 简明扼要
  2. 不要多余
  3. 由于所有操作都返回结果,因此if / then / else方式可以为您提供所需的操作。添加?/:运算符是多余的。

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

    只是我的2c。

答案 4 :(得分:3)

你可以这样写:

value = if maxValue > minValue then minValue else maxValue

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

答案 5 :(得分:2)

以下是事实:

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

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

答案 6 :(得分:-1)

value = maxValue > minValue && minValue || maxValue

这实际上不正确,请查看评论。