特别是在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
分配新的内存吗?第一个块会导致执行速度变慢吗?
答案 0 :(得分:5)
寻找最安全的替代方案,即对所有变量使用最小范围。至于效率,局部变量存储在堆栈中;循环内部没有内存分配。