我最近看到的代码看起来像这样
@a ||=
if x
x/2
else
2 * x
|| =
的用途是什么答案 0 :(得分:1)
这意味着如果变量为false,则执行赋值。
因此,如果@a
为假(例如为零或假),则会运行代码,并将其返回值分配给@a
这是因为如果第一个操作数为真,则OR语句为真,因此不需要进一步执行。
它等同于更长的表达式:
unless @a
if x
@a = x/2
else
@a = 2*x # though this line is kind of weird if x is falsey^^
end
end