[GpGiki 대문으로]

Meta Table


3.7 메타테이블(metatables)

루아에서 모든 테이블과 유저데이터값은 메타테이블을 가질 수 있다. 이 메타테이블은 어떤 오퍼레이션 하에서 원래의 테이블과 유저데이터의 습성을 정의하는 테이블이다. 여러분은 metatables 라는 함수를 통해 객체의 메타테이블을 질의하고 변경할 수 있다.

이러한 오퍼레이션의 각각에 대하여 루아는 특정 키를 연관시킨다. 루아가 테이블이나 유저데이터에 대한 이러한 오퍼레이션들 중의 하나를 수행할 때에, 그 객체가 일치하는 키를 가진 메타테이블을 가졌는지를 체크한다. 만약 그렇다면, 그 키(핸들러)에 연관된 값은 루아가 그 오퍼레이션을 어떻게 수행할 지를 제어한다.

메타테이블은 다음에 나열된 오퍼레이션을 제어한다. 각 오퍼레이션은 자신에 대응되는 키로서 정의된다. 이러한 오퍼레이션의 의미는 인터프리터가 그 오퍼레이션을 어떻게 수행하는지를 설명하는 루아 함수에 의해 더 잘 설명된다. 여기에 보이는 루아 코드는 단지 설명하기 위한 것이다. 실제 내용은 인터프리터 안에 하드 코드되어 있다. 따라서 이 시뮬레이션보다 더 효율적이다. 이 설명에 사용된 모든 함수들(rawget, tonumber, call 등등)은 6.1 절에 자세히 설명된다

- 루아 4.1 레퍼런스의 메타테이블 관련 내용발췌번역 -


제일 위로
최종 수정 일시: 05월 24일(2002년) 12:12 AM 편집 | 정보 | 차이 | 비슷한 페이지 DebugInfo
유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular