我应该使用ipairs还是for循环?

我读过使用ipairs比for循环慢,我应该改变我的编程习惯吗?我将来会使用lua 5.2,目前是5.1。

我的数组最多约有1000项。

local mytbl = { 'a','b','c','e'}
for i,v in ipairs(mytbl) do
  print(i,v)
end

for i=1,#mytbl do
  print(i,mytbl[i])
end

原文链接 https://stackoverflow.com/questions/8955085

点赞
stackoverflow用户148870
stackoverflow用户148870
## Lua 性能评测 - 测试 9: for 循环

- pairs: 3.078 (217%)
- ipairs: 3.344 (236%)
- for i=1,x do: 1.422 (100%)
- for i=1,#atable do 1.422 (100%)
- for i=1,atable_length do: 1.562 (110%)

> 注意,如果你迭代的是使用哈希键或稀疏表形式的表,那么只使用数字 `for` 循环将无法正常工作,你需要使用某种形式的 `pairs()` 函数。
2012-01-21 17:41:02