有人可以向我解释以下
Ruby代码的含义吗? (我在一个人的项目中看到这个代码片段):
car ||= (method_1 || method_2 || method_3 || method_4)
car = method_1 || method_2 || method_3 || method_4
———-更新————–
好的,在读取@ Dave的解释后,我得到了|| =运算符的含义,我的下一个问题是如果method_2,method_3和method_4都返回一个值,哪个值将被分配给car? (假设汽车最初没有)
解决方法
它是“条件分配”的赋值操作符
看到这里 – > http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Operators
条件分配:
x = find_something() #=>nil x ||= "default" #=>"default" : value of x will be replaced with "default",but only if x is nil or false x ||= "other" #=>"default" : value of x is not replaced if it already is other than nil or false
运算符|| =是表达式的简写形式:
x = x || "default"
编辑:
看完OP的编辑之后,这个例子只是这个的扩展,意思是:
car = method_1 || method_2 || method_3 || method_4
将将method_1,method_2,method_3,method_4(按顺序)分配给汽车的第一个非零或非返回值,否则将保留其旧值.