delete_at(n)如何在Ruby中工作?

时间:2013-11-29 03:19:16

标签: ruby-on-rails ruby arrays

如果我创建一个包含10个元素的新数组,并用数字1到10填充它,则调用delete_at(4),第四个元素为“已删除”。

但这如何运作?它是完全删除元素和索引并将数组的大小减小到9,还是将该索引的值无效(或使其为零)并将其推送到数组的末尾?

1 个答案:

答案 0 :(得分:1)

它将位置后的所有元素复制一个带有单个内存副本的元素,然后将数组的大小减少一个。

你为什么这么问?你是在试图推理表现吗?

参考:https://github.com/ruby/ruby/blob/9f45081627cf682b3ee938353da134d6f28560da/array.c#L2964