什么是“|| =”操作数代表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 ,因此您可以看到这对延迟加载和默认值赋值有何用处。