答案 0 :(得分:24)
如果尚未分配,则指定一个值。像这样:
a = nil
a ||= 1
a = 1
a ||= 2
在第一个示例中,a将设置为1.在第二个示例中,a仍将为1.
答案 1 :(得分:7)
答案 2 :(得分:1)
我只能猜测,但我认为它代表逻辑运算符与设置变量相结合(如^ =,+ =,* =在其他语言中)
所以x ||= y
与x = x || y
编辑:我猜错了,请参阅http://phrogz.net/ProgrammingRuby/language.html#table_18.4
x = x || y
表示:如果设置则使用x,否则指定y。它可用于确保变量至少初始化(为0,为空数组等)
答案 3 :(得分:1)
如果b为nil,则为其指定。
a = :foo
b ||= a
# b == :foo
如果b不为零,请不要更改。
a = :foo
b = :bar
b ||= a
# b == :bar
答案 4 :(得分:0)
这是一个“缩写分配”(参见Ruby Pocket Reference,第10页)
a = a || b
(意思是指定由逻辑或a,b
形成的值变为
a || = b
几乎所有运营商都有缩写版本(+ = * =&& =等)。