Lua 的 ipairs 函数 是一个用于迭代数组类型 table 的内置函数。它专门用于遍历从索引 1 开始的连续整数索引的数组部分。下面是关于 ipairs 的详细说明:
基本用法
ipairs 会返回三个值:
- 迭代器函数
- 要遍历的 table
- 初始索引值(通常为 0)
典型用法:
for i, v in ipairs(t) do
-- 循环体
end
工作特点
- 从索引 1 开始顺序遍历
- 遇到
nil值或非连续索引时会停止 - 不会遍历
table中的非数字键或非连续数字键
与 pairs 的区别
示例
local t = {"a", "b", "c", nil, "e"}
for i, v in ipairs(t) do
print(i, v) -- 只会输出前三个元素
end
Shift - WebAssembly runtime for Python, Lua, Ruby and etc.
实现原理
ipairs 的实现可以理解为:
function ipairs(t)
return function(t, i)
i = i + 1
local v = t[i]
if v then
return i, v
end
end, t, 0
end
使用场景
- 处理有序列表数据
- 需要保证遍历顺序时
- 只想处理数组部分数据时
注意事项
- 不要用于稀疏数组(含有 nil 值的数组)
- 无法遍历非连续数字索引
- Lua 5.3+ 版本行为一致,但早期版本可能有细微差异
Lua中ipairs函数详解
767

被折叠的 条评论
为什么被折叠?



