【问题标题】:In Lua, should I define a variable every iteration of a loop or before the loop?在 Lua 中,我应该在循环的每次迭代还是在循环之前定义一个变量?
【发布时间】:2011-06-01 03:55:59
【问题描述】:

特别是在 Lua 中,我这样做会不会造成任何伤害:

for i = 1, 10 do
    local foo = bar()
    -- do stuff with foo
end

而不是这个:

local foo
for i = 1, 10 do
    foo = bar()
    -- do stuff with foo
end

我的意思是,Lua 会尝试为foo 每次迭代分配新内存吗?第一个块会导致执行速度变慢吗?

【问题讨论】:

标签: performance loops lua memory-management


【解决方案1】:

寻找最安全的替代方案,即对所有变量使用最小的范围。至于效率,局部变量存储在堆栈中;循环内部没有进行内存分配。

【讨论】:

  • @arkilus 记得为您接受的答案投票。通过单击向上的箭头来完成。
  • @ponzao 我认为只有在有多个答案时才需要这样做。无论如何,已经做了,谢谢。
  • @arkilus 不客气! (您应该为您认为有帮助的答案投票。接受的答案是解决您问题的答案。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 2016-01-24
  • 2021-11-03
  • 2013-04-24
相关资源
最近更新 更多