什么是“|| =”操作数代表ruby
可能重复:
什么|| =在Ruby中意味着什么?
我这样测试过:
>> a||=3 => 3 >> a => 3 >> a||=b => 3 >> b NameError: undefined local variable or method `b' for main:Object from (irb):11
它是逻辑OR运算的简写。 它相当于:
a || a = b
注意:如果扩展a ||= b
,则上面的代码示例已经过更正,以反映真实(如果不直观)的行为。 感谢那些为我指出这一点的人。 这是来源
如果a
计算结果为true,它将保持原样,否则b
将被分配给a
。 在ruby中, nil
计算结果为false
,因此您可以看到这对延迟加载和默认值赋值有何用处。