Lua 面试题 目录

Lua 中如何遍历 table?

推荐答案

在 Lua 中,遍历 table 的常见方法有以下几种:

  1. 使用 pairs 函数

    pairs 函数会遍历 table 中的所有键值对,适用于非数组部分的 table。

  2. 使用 ipairs 函数

    ipairs 函数会从索引 1 开始,依次遍历 table 中的数组部分,直到遇到 nil

  3. 使用数值 for 循环

    这种方法适用于数组部分的 table,通过 #t 获取 table 的长度。

本题详细解读

pairs 函数

pairs 是 Lua 中用于遍历 table 的通用函数。它会返回一个迭代器函数,用于遍历 table 中的所有键值对。pairs 不保证遍历的顺序,适用于遍历非数组部分的 table。

ipairs 函数

ipairs 是 Lua 中用于遍历数组部分的 table 的函数。它从索引 1 开始,依次遍历 table 中的元素,直到遇到 nilipairs 适用于遍历数组部分的 table,且保证遍历的顺序。

数值 for 循环

数值 for 循环是一种常见的遍历数组部分 table 的方法。通过 #t 获取 table 的长度,然后从 1 开始遍历到 table 的长度。这种方法适用于数组部分的 table,且保证遍历的顺序。

选择遍历方法

  • 如果需要遍历 table 中的所有键值对,且不关心顺序,使用 pairs
  • 如果需要遍历数组部分的 table,且关心顺序,使用 ipairs 或数值 for 循环。
  • 如果 table 是纯数组(即所有键都是连续的整数),数值 for 循环和 ipairs 都可以使用。
纠错
反馈