我真的很喜欢这个:
var value = maxValue > minValue ? minValue : maxValue;
在Coffeescript中是否有同样简洁的东西?
var value = maxValue > minValue ? minValue : maxValue;
在Coffeescript中是否有同样简洁的东西?
value = if maxValue > minValue then minValue else maxValue
value = `maxValue > minValue ? minValue : maxValue`
意思是,如果最大值大于最小值,则返回最小值,否则返回最大值。 - Peter Krnjevicvalue = Math.min minValue, maxValue
- raskhadafi在JavaScript和CoffeeScript中有一个更加简洁的选项 :)
value = Math.min(minValue, maxValue)
Coffeescript
中的条件运算符以及如何编写它,并给出了JS
示例。这只是一个示例,与实际的语法问题无关。 - jimasun正如Răzvan Panda所指出的那样,我的评论实际上可能是更好的答案之一:
value = `maxValue > minValue ? minValue : maxValue`
这是一个感觉像CoffeeScript有竞争哲学的案例:
由于所有操作都返回结果,使用if/then/else方式做事情可以给你所需的。添加?/:运算符是冗余的。
这就是我希望他们能给我们?/:三元运算符的地方,即使它是多余的...它读起来比if/then/else变体更好。
仅代表个人观点。
a ? b : c
三元运算符而不产生歧义,因为a ? b
有意义(“如果a
非空,则为a
,否则为b
),而b: c
也有其含义({b: c}
)。 - Trevor Burnhamvalue = if maxValue > minValue then minValue else maxValue
文档中有一个标题为"条件、三目运算符和条件赋值"的部分。这让人们相信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
语句被归类为三元。在JavaScript中,“三元”运算符的正确术语是条件运算符。 - Ricardo Tomasivalue = maxValue > minValue && minValue || maxValue
这实际上是不正确的,请检查注释。
minValue
等于 0
,而 maxValue
等于 5
,那么 maxValue > minValue ? minValue : maxValue
将返回 0
,而 maxValue > minValue && minValue || maxValue
将返回 5
。 - pepkin88