如果我创建一个包含10个元素的新数组,并用数字1到10填充它,则调用delete_at(4)
,第四个元素为“已删除”。
但这如何运作?它是完全删除元素和索引并将数组的大小减小到9,还是将该索引的值无效(或使其为零)并将其推送到数组的末尾?
答案 0 :(得分:1)
它将位置后的所有元素复制一个带有单个内存副本的元素,然后将数组的大小减少一个。
你为什么这么问?你是在试图推理表现吗?
参考:https://github.com/ruby/ruby/blob/9f45081627cf682b3ee938353da134d6f28560da/array.c#L2964