相同点:
都可以遍历table/数组
不同点:
1)pairs会遍历所有的key,类似for in 循环,可以返回nil
2)ipairs只会从1开始,步进1,中间不是数字的key会被忽略,到第一个不连续的数字为止(不包含),如果key里面没有1则不会有任何输出
3)ipairs 仅仅遍历值,按照索引升序遍历,索引中断停止遍历。即不能返回 nil,只能返回数字 0,如果遇到 nil 则退出。
tabFiles = {
[1] = "test1",
[2] = "test2",
[4] = "test4"
}
print("use ipairs!!")
for k, v in ipairs(tabFiles) do
print(k, v)
end
print("use pairs!!")
for k, v in pairs(tabFiles) do
print(k, v)
end
输出结果为:
use ipairs!!
1 test1
2 test2
use pairs!!
1 test1
2 test2
4 test4
使用ipairs遍历键值对的表,不是数字的key会被忽略,如果key里面没有1则不会有任何输出
tabFiles = {
a = "test1",
b = "test2",
c = "test4"
}
print("use ipairs!!")
for k, v in ipairs(tabFiles) do
print(k, v)
end
print("use pairs!!")
for k, v in pairs(tabFiles) do
print(k, v)
end
print("Tab elements!")
for i,k in pairs(tabFiles) do
print(tabFiles[i])
end
--[[
use ipairs!!
use pairs!!
a test1
c test4
b test2
Tab elements!
test1
test4
test2
]]--