Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In Lua, should I define a variable every iteration of a loop or before the loop?

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?

like image 446
Yuri Ghensev Avatar asked Dec 29 '10 17:12

Yuri Ghensev


1 Answers

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.

like image 87
lhf Avatar answered Sep 19 '22 17:09

lhf