Skip to content

迭代器

Lua 提供了两个迭代器 pairs(table) 和 ipairs(table); 这两个迭代器通常会应用于泛型 for 循环中, 用于遍历指定的 table;

两个迭代器的不同点有:

  • ipairs 只会迭代指定 table 中的数组元素;
  • pairs 会迭代整个 table 中的元素, 无论是数组元素, 还是key-value, 会先输出数组元素,然后再接着输出key-value元素;

示例如下所示:

lua
-- iterators_test.lua

local emp = {
    "北京",
    name = "张三",
    age = 23,
    "上海",
    depart = "销售部",
    "长沙",
    "深圳"
}
-- 遍历 emp 中的所有数组元素
for i, v in ipairs(emp) do
    print(i, v)
end

print("=================================")

-- 遍历 emp 中的所有元素
-- 是先输出数组, 再输出key-value
for k, v in pairs(emp) do
    print(k, v)
end

输出结果如下所示: