【发布时间】:2013-07-31 13:03:09
【问题描述】:
我想知道 ruby 中 = 和 ||= 运算符之间的区别。在文档中,它说 = %= { /= -= += |= &= >>= = &&= ||= *= 是赋值运算符。
【问题讨论】:
标签: ruby
我想知道 ruby 中 = 和 ||= 运算符之间的区别。在文档中,它说 = %= { /= -= += |= &= >>= = &&= ||= *= 是赋值运算符。
【问题讨论】:
标签: ruby
a ||= b 是a = a || b 的缩写
在 ruby nil 中,计算结果为 false。所以如果a是nil或false,a会被赋值为b的值
【讨论】:
||= 没有像 += 和其他的那样的简单扩展,如果你想找到一个至少有点接近实际语义的简单扩展,它会是a || a = b,不是a = a || b。
||=之前的变量如果是!= nil,则接收运算符之后的值。
【讨论】:
a是false,它也会执行分配。