har*_*ryz 0 ruby arrays idioms append
我发现<<除非已经初始化,否则Array不能使用它.我目前这样写:
unless @app
@app = my_array
else
@app << my_array
end
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来写这个?
我之前使用过|| =,但是
(@app ||= []) << [1,2,3]
Run Code Online (Sandbox Code Playgroud)
将返回[[1,2,3]],这不是我们想要的.我们想要[1,2,3]
您可以在此处使用快捷方式
(@app ||= []) << xxx
Run Code Online (Sandbox Code Playgroud)
如果要将数组推送到@app变量,那么使用concat是一个更好的选择:
(@app ||= []).concat [1, 2, 3]
(@app ||= []).concat [4, 5, 6]
@app # => [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用splat运算符,如@ ck3g所示.