Ruby 中的条件赋值
a ||= b
是一个条件赋值运算符。相当于 a || a = b
。
如果 a
为假,即:nil
或 false
,则评估 b
并将结果分配给 a
。
如果 a
为真,即除 nil
和 false
外,b
将不被评估,a
将保持不变。
例如:
a = nil
a ||= 10
a
=> 10
a = 1
a ||= 10
a
=> 1
问题是:如果 a += b
等于 a = a + b
那么 a ||= b
应该是 a || a = b
。
这是一个完全错误的假设。如果没有事先声明 a
,a || a = b
将导致未定义的变量错误。
a || a = 10
输出:
NameError: undefined local variable or method `a'
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。