版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HQ354974212/article/details/89364073
pairs 与 ipairs 两者的区别如下:
--数组这么定义,貌似没差别
t= {1,2,3,4,5}
for k, v in ipairs(t) do
print(v)
end
print("--------------------")
for k, v in pairs(t) do
print(v)
end
效果看起来一切正常
--手动指定key值
t=
{
[-1] = -1,
[0] = 0,
[1] = 1,
[2] = 2,
}
print("--------------按i=1 ,i++的顺序打印,直到nil")
for k, v in ipairs(t) do
print(v)
end
print("--------------按照hash值顺序,并不是按key大小顺序")
for k, v in pairs(t) do
print(v)
end
仔细看,差别开始出现:
--手动指定key值
t=
{
[-1] = -1,
[0] = 0,
a = "aaa",
[1] = 1,
b = "bbb",
[3] = 3,
}
print("--------------按i=1 ,i++的顺序打印,直到nil")
for k, v in ipairs(t) do
print(v)
end
print("--------------按照hash值顺序,并不是按key大小顺序")
for k, v in pairs(t) do
print(v)
end
接着看差别,ipairs只输出了1,没有输出3,因为2不存在,所以没法向后
总结一下: