Ruby 中的条件赋值
作者:迹忆客
最近更新:2023/03/21
浏览次数:
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'

