2013-06-21 2 views
1

루아에 string.gsub(...)과 같은 메소드를 만드는 법?직접 인자를 바꿀 수있는 루아 메소드를 만들자

내 기능을 변경할 수 있기를 바란다. 함수에 전달하는 인수

나는 우리가 사용하려고 내가 GSUB 변경 (문자열 유형의 변수에 직접 적용) 할 수있는 방법 모르는

하지만 기능에서 (VALUE BY CALL), 해당 문자열과 숫자 형 변수 이름으로 전달할 알고 그것은 s:gsub(...)처럼 s 변수가 변경되어 gsub(...) 메서드의 영향을받습니다!

내가 ex:Inc()처럼 사용할 때 Inc(...) 메서드를 만들고 싶습니다. ex (숫자 var) 1 씩 증가합니다. (: 예 = 1 예)

ex = 1 
ex:Inc() 
print(ex) -- ex == 2 

감사합니다 수치 일 (안 테이블) 나이를 구현

도움말 ... 난 전직 변수가 있다고합니다.

답변

1

s:gsub(...)s=s:gsub(...) 일 때를 제외하고 s에 영향을줍니다. 이것을 시도하십시오 :

루아에서는 모든 인수가 값으로 전달됩니다. 함수 내에서 변수의 값을 변경하는 방법은 없습니다. (테이블의 내용은 변경할 수 있지만 테이블 자체는 변경할 수 없습니다.)

+0

변수를 참조로 전달할 수 없습니까? & amp; op in C++와 같은 것 메모리의 변수 주소에 액세스! 또는 메타 테이블에서 도움을 얻으시겠습니까? 나는 lua에서 ++ op를 오버로드하려고하지만, 불가능한 것처럼 보인다. –

+0

@ NIMIX3 아니요, 루아에는 '통과 기준'이 없습니다. –