我应该使用 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
I have read that the use of ipairs is slow compared to a for loop, should I change my programming habit? I'll be using lua 5.2 one day, currently 5.1.
My arrays are approximately 1000 items at most.
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
http://springrts.com/wiki/Lua_Performance#TEST_9:_for-loops
但是请注意,仅当您迭代具有连续数字索引的表时,使用数字
for
循环才有效 - 如果您对表或稀疏表使用散列键,那么您需要使用一些pairs()
的形式。http://springrts.com/wiki/Lua_Performance#TEST_9:_for-loops
Note, however, that using a numerical
for
loop only works if you're iterating over tables with sequential numeric indices - if you're using hash keys for your tables, or sparse tables, then you'll need to use some form ofpairs()
.