Lua小计,ipairs 和 pairs

最近重新拾起了lua,发现语法几乎忘光了,记录一下这俩的遍历的区别。话不多说,上代码

local list = {
    ["a"] = "cc",
    ["d"] = "ee",

}

print("pairs")
for k,v in pairs(list)  do
    print(k,'-----',v)
end
print("ipairs")
for k,v in ipairs(list)  do
    print(k,'-----',v)
end

输出为


image.png

从上图可以看出,ipairs不能遍历key为字母的map
修改一下代码

local list = {
    "a",
    [4] = "cc",
    [3] = "ee",
    "d"

}

print("pairs")
for k,v in pairs(list)  do
    print(k,'-----',v)
end
print("ipairs")
for k,v in ipairs(list)  do
    print(k,'-----',v)
end

输出如下


image.png

通过上述实验可以看出,ipairs只能遍历数字键的map,且重新排序按循序输出,但pairs可以遍历key为字符和数字的map,但不会对key为数字的重新排序,只会当做普通的字符串的key无序输出

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容