2012-05-29 2 views
0

고려 :루아에서는 함수의 인수가 함수 내에 지역화되어야 하는가?

 
function function_name(var_one, var_two) 
    var_one = var_two 
    return var_one 
end 

print(function_name("string_one", "string_two")) 

으로 appose local var_one = var_two

이제 전역 변수 var_one 아니면이 기능 로컬 범위에 아직도?

local var_one을 사용해야합니까, 아니면 이미 범위에 있습니까?

+0

달성하려는 목표는 무엇입니까? 이것이해야 할 일을 말하기는 어렵습니다. 그리고 그것 없이는, 당신이 가진 것이 어떤 식 으로든 잘못되었다고 말할 수 없습니다. –

+0

'var_one'이 글로벌이 될지 여부를 묻는 질문을 편집했습니다. – andrew

답변

4

아니요, 필요 없습니다. var_one이라는 이름은 이미 로컬입니다. 단순히 원래 값을 지우는 것입니다. 명시 적으로 전역을 참조하려면 _G.var_one을 사용해야합니다.

0

인수는 로컬 변수입니다 (이미).

참조 (할당)하면 해당 이름을 사용하여 어휘로 범위가 지정된 변수를 찾습니다. 로컬 변수를 찾아서 사용합니다.

함수가 클로저 인 경우이 값은 "업 값"(비 로컬 변수)이되는 로컬 변수입니다.

로컬 변수를 찾지 못하면 대신 글로벌 검색을 수행합니다. 전역 검색을 강제 실행하려면 수동으로 전역 테이블로 이동하십시오. 전역 검색은 수동 검색입니다.

변수를 로컬로 선언하도록 변수의 할당을 변경하면 실제로는 인수와 구별되지만 어휘 적으로 숨기는 어휘 스코프가 적용된 새로운 로컬 변수가 생성됩니다.

관련 문제