Ruby中的“|| =”运算符

前端之家收集整理的这篇文章主要介绍了Ruby中的“|| =”运算符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以向我解释以下 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(按顺序)分配给汽车的第一个非零或非返回值,否则将保留其旧值.

猜你在找的Ruby相关文章