在 Ruby 中,在数组前面添加元素的最佳方法是什么? 或许类似于 Python 的 list.insert(0, 'foo')
?
我想要在 Ruby 数组的 0 位置添加一个元素,并使所有其他元素向右移动。
array = ['b', 'c']
array.unshift('a')
p array
=> ['a', 'b', 'c']
正如 Scott G 在评论中指出的那样,从 Ruby 2.5.0 开始,#prepend
已被添加为 #unshift
的别名。
2.5.0
开始,方法 prepend
已作为 unshift
的别名添加进来。个人而言,我更喜欢在我的代码中使用 prepend
来提高可读性,因为它是更常见的术语,并且从技术角度来描述正在发生的事情仍然足够准确。 - Scott Gunshift
而不是 prepend
,原因如下:1)与 shift
对称;2)有趣的助记符(为了记住 shift
和 unshift
哪个做什么,从名称中删除字母“f”)。 - Sergio Tulentsev除了Steve的答案,还有另一种方法
array = ['b', 'c']
array = ['a'] + array #["a", "b", "c"]
array = ["b", "c"]
array.insert(0, "a", "a") # => ["a", "a", "b", "c"]
insert(0, "a", "a")
。 - toro2kother_array = ['a', 'a']; array.insert(0, *other_array)
也会产生相同的效果。 - Joseph