ruby“或等于”赋值运算符:||=
作用:如果想为一个变量赋值,当且仅当它是空值nil的时候(如果不是nil,则不改变它原来的数值)
例:
# 当a变量不是空值的时候 a = 3 => 3 a ||= 5 => 3 a => 3
# 当a 是空值的时候
a = nil => nil
a ||= 5 => 5
a => 5
再例如:
a = false => false
a ||= true => true
a => true
这个时候a是false不是nil空值啊,但是为什么 ||= 运算符会把这个true值赋给a呢?
因为 ||= 仅仅是一种“或操作并且赋值”的简写:
x = x || y
# 等价于
x ||= y
转载自:http://chinacheng.iteye.com/blog/1915407
转载于:https://blog.51cto.com/bohsu/1324785