В Lua, я должен определить переменную каждую итерацию цикла или перед циклом? - PullRequest
4 голосов
/ 29 декабря 2010

В частности, в 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 на каждой итерации? Может ли первый блок привести к замедлению выполнения?

1 Ответ

5 голосов
/ 29 декабря 2010

Выберите самую безопасную альтернативу, которая заключается в использовании наименьшей области действия для всех переменных.Что касается эффективности, локальные переменные хранятся в стеке;внутри цикла не выполняется выделение памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...