我有一个 hamlc(称为 Haml + Inline CoffeeScript),它有一行
- @variable1 ?= @object1.element[0]
我想知道这是否意味着:如果@object1.element[0]
有一个值,则将其存储在@variable1
.
我找不到有关 hamlc 的任何信息。另外,如果我的理解是正确的,如果我想添加一个else
条件怎么办?
我有一个 hamlc(称为 Haml + Inline CoffeeScript),它有一行
- @variable1 ?= @object1.element[0]
我想知道这是否意味着:如果@object1.element[0]
有一个值,则将其存储在@variable1
.
我找不到有关 hamlc 的任何信息。另外,如果我的理解是正确的,如果我想添加一个else
条件怎么办?
该运算符在 CoffeeScript?=
中称为存在运算符。
从文档:
在 JavaScript 中检查变量是否存在有点困难。if (variable) ... 接近,但因零、空字符串和 false 而失败。CoffeeScript 的存在运算符 ? 除非变量为 null 或未定义,否则返回 true,这类似于 Ruby 的 nil?
这意味着它的工作方式是,使用您的示例:
@variable1 ?= @object1.element[0]
如果@variable1
是null
或undefined
,则分配@object1.element[0]
给它。
如果我想为“else”添加条件怎么办?
@variable1 =
if @variable1?
@object1.element[0]
else
# your else clause here