有人可以向我解释以下Ruby代码的含义吗?(我在一个人的项目中看到了这段代码):
car ||= (method_1 || method_2 || method_3 || method_4)
Run Code Online (Sandbox Code Playgroud)
上面的代码和下面的代码有什么区别?
car = method_1 || method_2 || method_3 || method_4
Run Code Online (Sandbox Code Playgroud)
----------更新--------------
好吧,||=
在读完@Dave的解释之后,我得到了运算符的含义,我的下一个问题是两者都是method_2
,method_3
并method_4
返回一个值,哪一个值将分配给car
?(我想最初car
是零)
Dav*_*ave 11
它是'条件赋值'的赋值运算符
看这里 - > 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
Run Code Online (Sandbox Code Playgroud)
运算符|| =是表达式的简写形式:
x = x || "default"
Run Code Online (Sandbox Code Playgroud)
编辑:
在看到OP的编辑之后,这个例子只是这个的扩展,意思是:
car = method_1 || method_2 || method_3 || method_4
Run Code Online (Sandbox Code Playgroud)
将method_1,method_2,method_3,method_4(按此顺序)的第一个非零或非假返回值分配给car
它,或者它将保留其旧值.
归档时间: |
|
查看次数: |
3055 次 |
最近记录: |