首页 > 解决方案 > 从数组中间删除一个值会发生什么?

问题描述

如果我有这样的数组:

local array = {'foo', 'bar', 'baz'}

我像这样删除第二个元素:

array[2] = nil

array[3]这会向表的散列部分发送任何更大的索引吗?或者它只是在阵列部分留下一个洞?

标签: lua

解决方案


它将添加另一个边框。

这有几个影响:

  1. 您不能再使用ipairs来获取所有元素,因为ipairs它将在第一个边界处停止
  2. 长度运算符#将不再为您提供该表中的元素数量,因为它可能会返回任何边框。
  3. table.concat将在“concat”表中的索引 2 处引发错误无效值 (nil)
  4. 表格库中的某些函数将不再对边框后的值起作用


推荐阅读