Yuri Ghensev
Yuri Ghensev

Reputation: 2545

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?

Upvotes: 5

Views: 1509

Answers (1)

lhf
lhf

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

Related Questions