非变异数组推送方法等效

Kar*_*lak 2 ruby arrays

我想以非变异的方式向数组添加一个新元素.在JS中,我可以这样做:

var new_arr = arr.concat(3)
Run Code Online (Sandbox Code Playgroud)

而不是这个:

arr.push(3)
Run Code Online (Sandbox Code Playgroud)

我怎么能在Ruby中做同样的事情?concatRuby中的方法正在发生变异.

Ser*_*sev 10

就这么简单:

new_arr = arr + [3]
Run Code Online (Sandbox Code Playgroud)


Bri*_*ung 8

我将使用数组 splats 添加另一个解决方案,这可能看起来不那么尴尬:

new_arr = [*arr, 3]
Run Code Online (Sandbox Code Playgroud)