Lua迭代器
pairs
原理:无序输出 字母类型key 或者 数字类型key 的键值,遇到nil不输出,但不会停止遍历;
特点:
- pairs会输出所有的数据,不带key 的值按顺序输出,带key 的值无序输出;
- pairs遇到nil不会停止输出;
适用于:表
ipairs
原理:从第一个数字key开始,依次输出所有的 key+1 的键值,遇到 字母下标 并不会结束遍历,只是不输出而已,如果遇到nil则退出;
特点:
- ipairs会跳过 字符串的key,按 顺序输出 数字型key的值;
- ipairs遇到nil会停止输出;
适用于:数组
总结:会略过 数组非正数索引,以及其他字典索引,从数组的[1]索引开始迭代(对应index=0),顺序迭代直到 某个索引不存在 或 **其对应的值为空 **时结束
总
pairs 和 ipairs均优先输出没有key的value;