В Lua 4.01 второй цикл цикла будет более эффективным, чем первый? (К сожалению, я не знаю правильную терминологию, чтобы описать проблему.)Оптимизация лупов и переменных Lua 4.01
for k = 1, getn(myTable) do
...
end
local numTable = getn(myTable)
for k = 1, numTable do
...
end
И что насчет третьего по сравнению с четвертым примеров:
for k = 1, 4 do
bigTable[3][k]
...
end
local tempTable = bigTable[3]
for k = 1, 4 do
tempTable[k]
...
end
Я знаю, что в некоторых языках сценариев это дело. Благодарю.
[править]
Я только что пришел с какой-то тестовый код, чтобы проверить примеры # 1 против # 2.
function Return_a_Number()
print("############# I am looping.")
return 5
end
for i = 1, Return_a_Number() do
-- do nothing
end
Это показывает, что функция ГЕТН() в примере № 1 выполняется только один раз, а не всего один раз за цикл. Это хорошая вещь.
1 против 2: 1, хотя это не так сильно изменилось. 3 против 4: определенно 4, только один доступ к таблице за цикл плюс «tempTable» является локальным, что означает, что доступ к нему выполняется быстрее. – user6245072
Причина, по которой я спрашиваю о № 1 против № 2, заключается в том, что на некоторых языках (JavaScript) бит getn будет выполняться * каждый раз, когда цикл перемещается. – posfan12
Я добавил код для # 1 против # 2. Не знаете, как протестировать # 3 против №4. – posfan12