다른 사람을 가르치듯 자기 자신이 행할 수 있다면 그는 진정으로 다른사람을 가르칠수 있다. 가장 가르치기 어려운 것은 다른 사람이 아니라 바로 자기자신이다. - 법구경
* lua에서 한글 변수 등을 가능하게 하려면 쏘스코드의 어디를 건드려줘야 되나요? --파연
c에서 lua를 (그리고 lua에서 c를) 호출하려고 하는데, 너무 막막합니다. reference manual 읽어봐도 뭐가 뭔지 모르겠고요-_- 혹시 설명이 잘 되어있는 문서나, 예제 파일을 어디서 찾아야하는지 알고 계시면 답변 바랍니다. --파연
lua에서 namespace 구분은 어떻게 하나요?.. file1.lua file2.lua가 있고, 두 파일에 같은 이름의 함수가 있을 경우에 c에서 각각의 파일에 있는 함수를 호출하려니 잘 안되는군요. (처음 연 파일의 함수가 실행되네요.) --지원
- 글쎄요... 전 개인적으로 변수가 한글화 되면 더 헛갈릴 것 같던데...
한번 실험해보겠습니다. -- redpixel
LuaHangulPatch 5.0alpha도 패치를 했었는데 beta 한번 보고 추가해야 겠군요 -- BL
- 감사합니다. Lua 4.0.1 에서 한글패치 성공했습니다 --파연
- lua에서는 테이블로 모든 처리를 다할 수 있습니다. 테이블을 그냥 하나 만드시고, 거기에 함수를 선언해 넣으세요. 그다음 테이블을 namespace처럼 사용하시면 됩니다. C++과 같은 심도있는(?) 객체지향까지는 바라지 않으시는 것이 좋습니다. -- redpixel
- 음.. 죄송한데, 예를 좀 들어 주시면 안될까요?
--지원
- 예제라... 위 질문을 토대로 제맘대로 만들어보도록 하겠습니다. 우선 file1.lua입니다.
global1 = {} global1.testfunc = function(self, testvalue) print("global1 : ", testvalue) end두번째도 거의 동일합니다. file2.lua입니다.global2 = {} global2.testfunc = function(self, testvalue) print("global2 : ", testvalue) end자, 이제 묶어보도록 하죠.require("file1") require("file2") global1:testfunc("redpixel") global2:testfunc("바보")이렇게 하면 다음과 같이 출력됩니다.global1 : redpixel global2 : 바보
별거 아닙니다. 이해되셨는지요?
-- redpixel
- 아.. 알겠습니다.. 감사합니다. 그런데 저 두 파일을 읽는 곳에서 namespace를 지정할 수는 없나요? -- 질문만 계속하는, 지원
- 됩니다만... 좀 정식적인 방법이 아닌 느낌이 들게 됩니다. 즉,
global1 = {} global2 = {} require("file1") require("file2") global1:testfunc("redpixel") global2:testfunc("바보")이렇게 쓰는 것이 가능합니다. (file1.lua, file2.lua에서는 global1 = {} 부분 빼버려도 되는거 아시겠죠?
) 그리고, namespace와 같은 객체지향개념들은 lua에서는 그냥 생각지 않는게 좋을듯 하네요. table이라는 개념이 강력하긴하지만, 남용하면 성능을 떨어뜨리는 요인이 되니까요. 만일 5.0beta를 사용하신다면, REGISTRY와 전역 테이블을 고려하시는 것도 좋을 것 입니다. 제 경험에는 루아로 라이브러리적인 부분을 작성하기 보다는, 알고리즘의 흐름정도만을 기술하는 수준이 가장 맞는 사용법이라고 생각됩니다. (즉, 엔진적인 부분은 모두 C/C++ 수준에서 작성하는 거죠) -- REDPIXEL
- 됩니다만... 좀 정식적인 방법이 아닌 느낌이 들게 됩니다. 즉,
- 예제라... 위 질문을 토대로 제맘대로 만들어보도록 하겠습니다. 우선 file1.lua입니다.
- 음.. 죄송한데, 예를 좀 들어 주시면 안될까요?
저 프로그래밍의 완전 초보라서 그러는데... function이 호출 가능한 method 목록 좀 알고싶습니다. 요새 개인적으로 wow 애드온 소스 분석해서 하나 만들려고 하는데 lua 함수가 호출하는 method에 대한 정보가 거의 없더군요... -- rot 2005-04-14
루아에서는 별도의 메소드가 지정되어있는게 아니고 모두 C레벨에서 작성하셔서 넣어주셔야합니다. WOW같은 경우는 루아의 인터프리터만 빌려쓰는 식이므로 WOW에서 제공한 함수 레퍼런스를 보셔야 할듯. -- redpixel 2005-04-14









![[http]](/wiki/imgs/http.png)
