Lua 面试题 目录

Lua 中如何从 table 删除元素?

推荐答案

在 Lua 中,可以通过将 nil 赋值给 table 中的某个键来删除该元素。例如:

对于数组形式的 table,可以使用 table.remove 函数来删除指定索引的元素:

本题详细解读

1. 删除键值对元素

在 Lua 中,table 是一种关联数组,可以通过键来访问和操作元素。要删除一个键值对,只需将该键对应的值设置为 nil。例如:

执行上述代码后,myTable 将变为 {a = 1, c = 3}

2. 删除数组元素

对于数组形式的 table(即索引为连续整数的 table),可以使用 table.remove 函数来删除指定索引的元素。table.remove 函数会将该元素从 table 中移除,并将后面的元素向前移动以填补空缺。例如:

执行上述代码后,myArray 将变为 {10, 30}

3. 注意事项

  • 使用 nil 删除键值对时,table 的大小不会自动调整,因此 # 操作符可能不会返回预期的结果。
  • 使用 table.remove 删除数组元素时,table 的大小会自动调整,# 操作符会返回正确的元素数量。
  • 如果删除的是数组中的最后一个元素,table.remove 会直接将其移除,不会影响其他元素。
纠错
反馈