迭代器
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
输出结果如下所示: