运算符|| =在Ruby中代表什么?
可能重复:
什么|| =(或等于)在Ruby中意味着什么?
在谷歌搜索这个很难,因为它是一个符号,而不是文本。
什么是||=
代表什么?
它是如何工作的?
如果尚未分配,则分配值。 像这样:
a = nil a ||= 1 a = 1 a ||= 2
在第一个示例中,a将设置为1.在第二个示例中,a仍将为1。
从普通Ruby成语问题:
相当于
if a == nil || a == false a = b end
如果b为nil,则为其指定a。
a = :foo b ||= a # b == :foo
如果b不为零,请不要更改它。
a = :foo b = :bar b ||= a # b == :bar
我只能猜测,但我认为它代表逻辑运算符与设置变量相结合(如^ =,+ =,* =在其他语言中)
所以x ||= y
与x = x || y
相同 x = x || y
编辑:我猜错了,请参阅http://phrogz.net/ProgrammingRuby/language.html#table_18.4
x = x || y
x = x || y
表示:如果设置则使用x,否则指定y。 它可用于确保变量至少初始化(为0,为空数组等)
这是一个“缩写分配”(参见Ruby Pocket Reference,第10页)
a = a || b
(意思是a被赋予由逻辑或a,b形成的值
变
a || = b
几乎所有运营商都有缩写版本(+ = * = && = etc)。