Reputation: 2545
Specifically in Lua, will I do any harm by doing this:
for i = 1, 10 do
local foo = bar()
-- do stuff with foo
end
instead of this:
local foo
for i = 1, 10 do
foo = bar()
-- do stuff with foo
end
I mean, will Lua try to allocate new memory for foo
every iteration? Could the first block lead to slower execution?
Upvotes: 5
Views: 1509
Reputation: 72312
Go for the safest alternative, which is to use the smallest scope for all variables. As for efficiency, local variables are stored in a stack; no memory allocation is done inside the loop.
Upvotes: 6