在Lua中,我应该在每次迭代循环时定义一个变量,还是在循环之前定义?

在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?第一块代码是否会导致执行速度变慢?

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

点赞
stackoverflow用户107090
stackoverflow用户107090

先考虑安全性,使用最小的范围定义变量。

至于效率,局部变量会被存储在一个栈中,在循环内部不会进行内存分配。

2010-12-29 17:20:06