를 격파 수, 당신은 단지 참조 여부 변수를 전달하기 위해 선택할 수 없습니다. 기본 유형은 절대로 숫자와 부울과 같은 참조로 전달되지 않으며 다른 유형은 항상 테이블, 사용자 데이터 및 문자열과 같은 참조로 전달됩니다. 문자열의 경우에는 아무렇게나 변경할 수 없기 때문에 이것은별로 중요하지 않습니다. 지역 주민 이후 전역에이 유일한 작품, 테이블에 보관되지 않습니다
a=2
b=3
function myfunc(...)
local args={...}
for k,v in pairs(args) do
_G[v]=_G[v]+k
end
end
myfunc('a')
print(a) -- 3
myfunc('a','b')
print(a,b) -- 4 5
참고 :
는 그러니 당신은 당신이이 같은 문자열로 전 세계적으로 작업 할 당신의 인수를 전달합니다. 테이블 작업
은 사물의 종류 덜 고통스러운 수 :
function myfunc(t)
for k,v in pairs(t) do
t[k]=v+k
end
end
tab1={a=2}
myfunc(tab1)
print(tab1.a) -- 3
tab2={a=2,b=3}
myfunc(tab2)
print(tab2.a,tab2.b) -- 3 5
'테이블 만 예외입니다.'기술적으로 테이블 *의 값은 참조입니다. 표의 * 내용 *은 표의 값과 별개입니다. –