在Lua中,我应该在循环的每次迭代或循环之前定义变量吗?

时间:2010-12-29 17:06:16

标签: performance loops lua memory-management

特别是在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分配新的内存吗?第一个块会导致执行速度变慢吗?

1 个答案:

答案 0 :(得分:5)

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