src*_*ulo 34 ruby arrays copy new-operator
我想在数组中添加一个元素,但实际上没有更改该数组,而是返回一个新数组.换句话说,我想避免:
arr = [1,2]
arr << 3
Run Code Online (Sandbox Code Playgroud)
哪个会回归:
[1,2,3]
Run Code Online (Sandbox Code Playgroud)
改变arr本身.如何避免这种情况并创建一个新阵列?
Ser*_*sev 45
您可以使用plus
operator 轻松地在Ruby中添加两个数组.所以,只需从元素中创建一个数组.
arr = [1, 2]
puts arr + [3]
# => [1, 2, 3]
puts arr
# => [1, 2]
Run Code Online (Sandbox Code Playgroud)
它也可以通过使用*运算符扩展arr来实现
arr = [1,2]
puts [*arr, 3]
=> [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)