pairs
和ipairs
异同
- 相同点:都是能遍历集合(表、数组)
- 不同点:
ipairs
仅仅遍历值,按照索引升序遍历,索引中断停止遍历。即不能返回nil
,只能返回数字 0,如果遇到nil
则退出。它只能遍历到集合中出现的第一个不是整数的key。pairs
能遍历集合的所有元素。即pairs
可以遍历集合中所有的key
,并且除了迭代器本身以及遍历表本身还可以返回nil
。
在使用上可以简单地归纳为:
- pairs: 迭代 table,可以遍历表中所有的 key 可以返回 nil
- ipairs: 迭代数组,不能返回 nil,如果遇到 nil 则退出
举例1:
1 | local tabFiles = { |
举例2:
1 | local tabFiles = { |
举例3:
1 | local tabFiles = { |
举例4:
1 | local tabFiles = {"alpha", "beta", [3] = "no", ["two"] = "yes"} for i,v in ipairs(tabFiles ) do --输出前三个 备注:因为第四个key不是整数 |