将元素附加到可能尚未初始化的数组中的Ruby习惯用法是什么?

将元素附加到可能尚未初始化的数组中的Ruby习惯用法是什么?,ruby,arrays,append,idioms,Ruby,Arrays,Append,Idioms,我发现您可以在这里使用快捷方式 (@app ||= []) << xxx 或者,您可以使用@ck3g建议的splat操作符。这里有一个习惯用法: @app ||= [] @app << xxx @app | |=[] @应用程序 *是“unarray”运算符 > array = [1, 2, 3] => [1, 2, 3] > [*array] => [1, 2, 3] 这些方法也许你正在使用什么是xxx??那是数组吗???@harryz:但

我发现
您可以在这里使用快捷方式

(@app ||= []) << xxx
或者,您可以使用@ck3g建议的splat操作符。

这里有一个习惯用法:

@app ||= []
@app << xxx
@app | |=[]
@应用程序
*
是“unarray”运算符

> array = [1, 2, 3]
=> [1, 2, 3]
> [*array]
=> [1, 2, 3]

这些方法
也许你正在使用什么是xxx??那是数组吗???@harryz:但是你的原始代码也是。如果
@app
已经初始化,那么
谢谢,其他人也会给我很好的答案,但是concat确实是我想要的。
(@app ||= []).concat [1, 2, 3]
(@app ||= []).concat [4, 5, 6]

@app # => [1, 2, 3, 4, 5, 6]
@app ||= []
@app << xxx
> (@app ||= []).push *[1, 2, 3]
=> [1, 2, 3]
> array = [1, 2, 3]
=> [1, 2, 3]
> [*array]
=> [1, 2, 3]
> (@app2 ||= []).push *1
=> [1]
@app ||= []
@app.concat my_array