1

我有一个 hamlc(称为 Haml + Inline CoffeeScript),它有一行

- @variable1 ?= @object1.element[0]

我想知道这是否意味着:如果@object1.element[0]有一个值,则将其存储在@variable1.

我找不到有关 hamlc 的任何信息。另外,如果我的理解是正确的,如果我想添加一个else条件怎么办?

4

1 回答 1

2

该运算符在 CoffeeScript?=中称为存在运算符。

从文档:

在 JavaScript 中检查变量是否存在有点困难。if (variable) ... 接近,但因零、空字符串和 false 而失败。CoffeeScript 的存在运算符 ? 除非变量为 null 或未定义,否则返回 true,这类似于 Ruby 的 nil?

这意味着它的工作方式是,使用您的示例:

 @variable1 ?= @object1.element[0]

如果@variable1nullundefined,则分配@object1.element[0]给它。

如果我想为“else”添加条件怎么办?

@variable1 = 
  if @variable1?
    @object1.element[0]
  else
    # your else clause here
于 2016-04-04T06:38:39.817 回答