Tag: undefined behavior

为什么在Ruby中,|| 当`a`未定义时,1会抛出错误,但a = a || 1会不会?

当a未定义时,则为a || 1 a || 1将抛出错误,但a = a || 1 a = a || 1不会。 是不是有点不一致? irb(main):001:0> a NameError: undefined local variable or method ‘a’ for main:Object from (irb):1 from c:/ruby/bin/irb:12:in ” irb(main):002:0> a || 1 NameError: undefined local variable or method ‘a’ for main:Object from (irb):2 from c:/ruby/bin/irb:12:in ” irb(main):003:0> a = a || […]