Ruby ||= 运算符搞笑
Ruby ||= operator acting funny
据我了解,a ||= 7
的意思如下:
如果 a
有值,则继续使用该值,但如果没有,则将其设置为 7。
下面是发生的事情。
如果我有 a
和 b
作为:
a = true
b = false
然后
a ||= b
=> 真
(在我的解释中:因为 'a' 确实有一个值,它仍然是那个值,并且不等同于 'false' - 到目前为止还不错。)
但是,如果我将它们切换为:
a = false
b = true
然后 a ||= b
=> 真
所以在这种情况下,我的逻辑不起作用,因为它应该 return 为假,因为 "since 'a' has a value, it should not be assigned the value of 'b'",这显然发生在这里。
我是不是漏掉了什么?
a ||= b
等同于
a || a = b
这意味着如果 a
是 falsy,则 b
值被分配给 a
,即 false
或 nil
.
据我了解,a ||= 7
的意思如下:
如果 a
有值,则继续使用该值,但如果没有,则将其设置为 7。
下面是发生的事情。
如果我有 a
和 b
作为:
a = true
b = false
然后
a ||= b
=> 真
(在我的解释中:因为 'a' 确实有一个值,它仍然是那个值,并且不等同于 'false' - 到目前为止还不错。)
但是,如果我将它们切换为:
a = false
b = true
然后 a ||= b
=> 真
所以在这种情况下,我的逻辑不起作用,因为它应该 return 为假,因为 "since 'a' has a value, it should not be assigned the value of 'b'",这显然发生在这里。
我是不是漏掉了什么?
a ||= b
等同于
a || a = b
这意味着如果 a
是 falsy,则 b
值被分配给 a
,即 false
或 nil
.