我真的很喜欢这样:
var value = maxValue > minValue ? minValue : maxValue;
Coffescript中是否有同样简洁的内容?
我真的很喜欢这样:
var value = maxValue > minValue ? minValue : maxValue;
Coffescript中是否有同样简洁的内容?
Answers:
value = if maxValue > minValue then minValue else maxValue
value = `maxValue > minValue ? minValue : maxValue`
value = Math.min minValue, maxValue
javascript和coffeescript中都有一个更简洁的选项:)
value = Math.min(minValue, maxValue)
value = Math.min minValue, maxValue
;)
Conditional operator in Coffeescript
给出了JS
示例,并询问了如何写它。这只是一个示例,与实际的语法问题无关。
正如RăzvanPanda指出的那样,我的评论实际上可能是更好的答案之一:
value = `maxValue > minValue ? minValue : maxValue`
在这种情况下,感觉CoffeeScript具有相互竞争的理念:
由于所有操作都返回结果,因此if / then / else处理方式可以满足您的需求。添加?/:运算符是多余的。
这是我希望他们为我们提供?/:三元运算符的地方,即使它是多余的...它比if / then / else变体的可读性更好。
只是我的2c。
a ? b : c
没有歧义的CoffeeScript三元,因为a ? b
有一个意思(”a
如果它不为空,b
否则),并b: c
有一个,以及({b: c}
)。
在文档中,有一个标题为“条件,三元和条件赋值”的部分。这使人们相信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
if then else
是三元运算,只是语法不同。
if then else
声明归为三元。无论如何,JavaScript中“三元”运算符的正确术语是条件运算符。
value = maxValue > minValue && minValue || maxValue
这实际上是不正确的,请检查注释。
minValue
相等0
和maxValue
相等5
,maxValue > minValue ? minValue : maxValue
则将返回0
,而maxValue > minValue && minValue || maxValue
将会返回5
。