В сложном коде я обнаружил странное поведение: очевидно, Lua не обрабатывает локальные переменные так же, как C и Java (я не удивлен, но я не знаю, КАК это так или иначе обрабатывает их!)
Я прочитал PIL и Lua-users.org , но никто не упоминает, что происходит с локальными переменными в рекурсии. Это заставило меня разработать следующий тестовый код:
function addN(n)
local ret=""
if n>0 then
ret=ret..addN(n-1)
print("for n="..n.." ret='"..ret.."'")
else
print("n reached 0")
end
return ret
end
print("Final result='"..addN(9).."'")
Ожидаемый результат:
Final result='987654321'
Но я получаю:
Final result=''
Почему? Как мне достичь ожидаемого результата?