使用迭代器遍历table的时候,会用到pairs和ipairs,区别如下,只要执行一遍就看出:(注:table中有个nil)
local temp = {"java", "c++", a = 1, "MySQL", nil, "Redis",b = 2} print("==========ipairs===============") for k,v in ipairs(temp) do print(v) end print("==========pairs===============") for k,v in pairs(temp) do print(k,v) end
输出的结果:
==========ipairs=============== java c++ MySQL ==========pairs=============== 1 java 2 c++ 3 MySQL 5 Redis a 1 b 2
总结:①:ipairs不会迭代键值对,会跳过键值对然后顺利输出table中的值,遇到nil则会中断,类似java的break;
②:pairs会输出table中的键值对,输出遇到nil也不会中断。类似于java的continue