Lua中 pairs 和 ipairs 的区别
在我看来,pairs就是粗略计算,ipairs就是仔细计算。
pairs只关注存在还是不存在,而ipairs还要关注存在是否合理。
pairs将存在的值全部输出,ipairs从key为1的值开始输出,只要遇见不合顺序的就直接停摆。另外,遍历时,如要修改相应的值,不能直接修改v,v类似于临时变量,应使用table[k]进行修改。
例子:
local acc = {
[400] = "acc",
[401] = "bcc"
}
ipairs遍历:
for k,v in ipairs(acc) do
print(k,v)
end
结果:
[Finished in 0.1s]
pairs遍历:
for k,v in pairs(acc) do
print(k,v)
end
结果:
400 acc
401 bcc
[Finished in 0.1s]