добавить элемент в массив ruby ​​вернуть новый массив - PullRequest
32 голосов
/ 31 января 2012

Я бы хотел добавить элемент в массив, но без фактически не изменив этот массив и вместо этого он вернул новый. Другими словами, я хочу избежать:

arr = [1,2]
arr << 3

Что вернет:

[1,2,3]

Изменение самого обр. Как я могу избежать этого и создать новый массив?

Ответы [ 2 ]

43 голосов
/ 31 января 2012

Вы можете легко добавить два массива в Ruby с помощью оператора plus. Итак, просто сделайте массив из вашего элемента.

arr = [1, 2]
puts arr + [3]
# => [1, 2, 3]
puts arr
# => [1, 2]
6 голосов
/ 19 октября 2016

это также работает, расширяя arr используя * operator

arr = [1,2]
puts [*arr, 3]
=> [1, 2, 3]
...