根据我的理解,a ||= 7意味着以下内容:if a有值,继续使用该值,但如果没有,则将其设置为7.
这是发生了什么.
如果我有a和b作为:
a = true
b = false
Run Code Online (Sandbox Code Playgroud)
然后
a ||= b =>是的
(在我的解释中:因为'a'有价值,它仍然存在,并且不等于'假' - 到目前为止一直很好.)
但是,如果我将它们切换为:
a = false
b = true
Run Code Online (Sandbox Code Playgroud)
那么a ||= b =>真
所以在这种情况下我的逻辑不起作用,因为它应该返回false,因为"因为'a'有一个值,所以不应该赋予'b'的值",这显然发生在这里.
我错过了什么吗?
a ||= b
Run Code Online (Sandbox Code Playgroud)
相当于
a || a = b
Run Code Online (Sandbox Code Playgroud)
这意味着将b值分配给aif a是falsy,即false或nil.