1
복잡한 코드에서 나는 이상한 행동을 발견했습니다 : 분명히 루아는 로컬 변수를 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=''
이유는 무엇입니까? 예상 된 결과에 어떻게 도달 할 수 있습니까?
이상, 'ret = n..addN (n-1)'. ret는 결국 "..."입니다. – Bahbar
@Bahbar 좋은 콜, 고맙습니다 :-) – cnicutar