【发布时间】:2012-04-26 03:03:36
【问题描述】:
我需要将值设置为 a,这取决于条件。
使用 CoffeeScript 执行此操作的最短方法是什么?
例如这就是我在 JavaScript 中的做法:
a = true ? 5 : 10 # => a = 5
a = false ? 5 : 10 # => a = 10
【问题讨论】:
-
我希望咖啡脚本能支持三元运算符语法,它比 if else then更短更容易阅读 -
@AJP 我认为三元组会使咖啡变得不像 Ruby 那样,尽管 Ruby 有。咖啡的目标始终是可读性和圆角。
-
@jcollum 同意,但我发现最令人不安的是
a = true ? 5 : 10是有效的咖啡脚本,但并不意味着三元结构,而是(在 javascript 中)它意味着:a = true ? true : {5:10}这是已知的as a bad thing® 另外a = false ? {5 : 10}in coffeescript then (in javascript) 相当于:a = true ? false : {5:10}对于它的价值,我不认为它是好的。 -
最好为 CoffeeScript 写出 if..then..else。这 ?作为存在运算符很有意义:
beast = yeti ? "bear"或if yeti? then alert "It's a yeti!"很好地使用了?。 -
CoffeeScript 中不需要单独的三元运算符,因为
if/then/else已经是一个表达式并且做同样的事情。如果您真的缺少它,那么您宁愿习惯于 C 或 JavaScript 语法,也不愿真正需要它。如果它的可读性不够,并且有时确实会发生,只需将整个表达式括在括号中即可。正如@PaulOliver 所述,操作员?已免于进行更多有用的检查,这些检查在JavaScript 中不存在。存在算子是最好的。
标签: javascript coffeescript ternary-operator