我想添加一個元素到一個數組,但沒有實際上改變該數組,而是它返回一個新的。換句話說,我想避免:添加元素到紅寶石陣列返回新陣列
arr = [1,2]
arr << 3
這將返回:
[1,2,3]
更改編曲本身。我怎樣才能避免這一點,並創建一個新的數組?
我想添加一個元素到一個數組,但沒有實際上改變該數組,而是它返回一個新的。換句話說,我想避免:添加元素到紅寶石陣列返回新陣列
arr = [1,2]
arr << 3
這將返回:
[1,2,3]
更改編曲本身。我怎樣才能避免這一點,並創建一個新的數組?
您可以使用plus
運算符輕鬆地在Ruby中添加兩個數組。所以,只需製作一個數組即可。
arr = [1, 2]
puts arr + [3]
# => [1, 2, 3]
puts arr
# => [1, 2]
它也可以通過使用ARR *運算符
arr = [1,2]
puts [*arr, 3]
=> [1, 2, 3]
基準測試,它慢得多 – user3033467 2018-01-19 16:40:52
完美延伸。謝謝! – srchulo 2012-01-31 00:36:49
爲什麼ruby中沒有辦法將一個項目添加到數組中影響原始數組? – gitb 2014-12-04 20:36:06
@gitb數組#+方法執行此操作;它會從加號運算符的左側和右側創建一個新數組,並返回新數組,並保留兩個操作數未修改。 – rodamn 2015-09-03 06:50:32