我需要根据条件将值设置为a。

用CoffeeScript做这件事的最短方法是什么?

例如,这是我在JavaScript中如何做到的:

a = true  ? 5 : 10  # => a = 5
a = false ? 5 : 10  # => a = 10

当前回答

类似于quotesBro的答案,但没有then关键字。下面是一个使用普通多行if语句的版本。对我来说,这是一个很好的格式。

考虑一下这个正常的if语句

if true
    # do stuff
else
    # do stuff

然后使用它来赋值(同样,没有Then关键字)

value = if true
    5
else
    10

value = if false
    5
else
    10

这编译成javascript作为一个规则的三元

value = true ? 5 : 10;
value = false ? 5 : 10;

其他回答

a = if true then 5 else 10
a = if false then 5 else 10 

见文档。

类似于quotesBro的答案,但没有then关键字。下面是一个使用普通多行if语句的版本。对我来说,这是一个很好的格式。

考虑一下这个正常的if语句

if true
    # do stuff
else
    # do stuff

然后使用它来赋值(同样,没有Then关键字)

value = if true
    5
else
    10

value = if false
    5
else
    10

这编译成javascript作为一个规则的三元

value = true ? 5 : 10;
value = false ? 5 : 10;

几乎在任何语言中,这都是可行的:

a = true  && 5 || 10
a = false && 5 || 10

因为所有内容都是表达式,因此会产生一个值,所以可以使用if/else。

a = if true then 5 else 10
a = if false then 5 else 10

你可以在这里看到更多关于表达式的例子。

CoffeeScript没有三元操作符。医生是这么说的。

你仍然可以使用这样的语法

a = true then 5 else 10

这样就清楚多了。