我想在数组中添加一个元素,但没有实际更改该数组,而是返回一个新数组。换句话说,我想避免:
arr = [1,2]
arr << 3
哪会回来:
[1,2,3]
改变arr本身。我该如何避免这种情况并创建一个新阵列?
答案 0 :(得分:43)
您可以使用plus
运算符在Ruby中轻松添加两个数组。所以,只需从元素中创建一个数组。
arr = [1, 2]
puts arr + [3]
# => [1, 2, 3]
puts arr
# => [1, 2]
答案 1 :(得分:6)
它也可以通过使用*运算符
扩展arr来实现arr = [1,2]
puts [*arr, 3]
=> [1, 2, 3]