"|| ="操作数在ruby中代表什么?

lka*_*htz 1 ruby

可能重复:
Ruby中的|| =是什么意思?

我测试过这样:

>> a||=3
=> 3
>> a
=> 3
>> a||=b
=> 3
>> b
NameError: undefined local variable or method `b' for main:Object
    from (irb):11
Run Code Online (Sandbox Code Playgroud)

Ed *_* S. 5

它是逻辑OR运算的简写.它相当于:

a || a = b
Run Code Online (Sandbox Code Playgroud)

注意:上述代码示例已更正,以反映展开时的真实(如果不直观)行为a ||= b.感谢那些为我指出这一点的人. 这是来源

如果a计算结果为true,它将保持原样,否则b将被分配给a.在ruby nil求值时false,您可以看到这对延迟加载和默认值赋值有何用处.