有人可以向我解释以下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是零)
我刚开始学习RubyMotion,在很多例子中我都看到了||=语法.这是什么意思?
这是一个例子:
def window
@window ||= begin
w = UIWindow.alloc.initWithFrame UIScreen.mainScreen.bounds
w.rootViewController = @navigationController
w
end
Run Code Online (Sandbox Code Playgroud)
搜索符号很困难,谷歌忽略了我的查询中的符号.
可能重复:
Ruby中的|| =是什么意思?
下面的行是什么意思?
a ||= {}
a ||= 1
Run Code Online (Sandbox Code Playgroud)
在irb中,它总是为上述两行返回a的类,作为哈希.提前致谢.
我的应用程序控制器中有一个受保护的方法
def current_user
@current_user ||= User.find_by_id(session[:user_id])
end
Run Code Online (Sandbox Code Playgroud)
我想知道是什么||=意思?我一直试图搜索并找出答案,但无济于事.
可能重复:
Ruby中的|| =是什么意思?
我测试过这样:
>> a||=3
=> 3
>> a
=> 3
>> a||=b
=> 3
>> b
NameError: undefined local variable or method `b' for main:Object
from (irb):11
Run Code Online (Sandbox Code Playgroud) params[:user][:role_ids] ||= []
Run Code Online (Sandbox Code Playgroud)
它有什么作用?
ruby -v = 1.9.2p290