我应该使用 ipairs 还是 for 循环

发布于 2024-12-28 09:17:27 字数 243 浏览 0 评论 0原文

我读到 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

黯然 2025-01-04 09:17:27

http://springrts.com/wiki/Lua_Performance#TEST_9:_for-loops

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() 的形式。

http://springrts.com/wiki/Lua_Performance#TEST_9:_for-loops

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%)

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 of pairs().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文