evf*_*qcg 313 javascript ternary-operator coffeescript
我需要设置值a
取决于条件.
使用CoffeeScript执行此操作的最短方法是什么?
这就是我在JavaScript中的表现:
a = true ? 5 : 10 # => a = 5
a = false ? 5 : 10 # => a = 10
Run Code Online (Sandbox Code Playgroud)
log*_*yth 536
因为一切都是表达式,因此产生一个值,所以你可以使用if/else
.
a = if true then 5 else 10
a = if false then 5 else 10
Run Code Online (Sandbox Code Playgroud)
你可以看到更多的表达的例子在这里.
Pau*_*ver 68
a = if true then 5 else 10
a = if false then 5 else 10
Run Code Online (Sandbox Code Playgroud)
见文档.
小智 21
在几乎任何语言中,这应该起作用:
a = true && 5 || 10
a = false && 5 || 10
Run Code Online (Sandbox Code Playgroud)
Max*_*eng 11
Coffeescript 不支持 javascript三元运算符.以下是coffeescript作者的原因:
我喜欢三元运算符和下一个运算符一样多(实际上可能更多一点),但语法并不能使它们变得更好 - 它们很棒,因为它们可以将if/else放在一行上作为一个表达.
他们的语法只是记忆中另一种神秘的魔法,与语言中的任何其他东西都不相似.结果相同,我宁愿
if/elses
总是看起来一样(并且总是被编译成表达式).因此,在CoffeeScript中,即使是多行ifs也会在适当的时候编译为三元组,if if语句也没有else子句:
Run Code Online (Sandbox Code Playgroud)if sunny go_outside() else read_a_book(). if sunny then go_outside() else read_a_book()
两者都成为三元,都可以用作表达.它是一致的,没有新的语法可供学习.所以,谢谢你的建议,但我关闭这张票是"wontfix".
请参考github问题:https://github.com/jashkenas/coffeescript/issues/11#issuecomment-97802
归档时间: |
|
查看次数: |
96680 次 |
最近记录: |