#1
Something{ "data1", "data2", "data3", "data4" }
Something( { "data1", "data2", "data3", "data4" } )
두 표현은 동일하다. - Something 이라는 함수에 테이블을 인자로 넘기고 있다.
#2
setmetatable( t1, mt )
t1의 메타 테이블로 mt을 설정한다.
당연히 t1 과 mt는 테이블 구조여야함
#3
메타테이블의 __add, __mul, __sub, __div, __unm, __mod, __pow, __concat, __eq, __lt, __le 등을 가지고
연산자 재정의를 할 수 있다. +, *, -, /, ~, %, ^, ==, <=, >=
위 항목에 각 연산을 수행할 함수를 정의하여 할당하면 된다.
#4
Something = { item = 0 }
function Something.func1( self )
self.item = 100
end
호출시에 ----> obj.func1( obj )
function Something:func2( )
self.item = 200
end
호출시에 ----> obj:func2()
#5
Something = { item = 0 }
function Something:New( o )
o = o or { }
setmetatable( o, self )
self.__index = self
return o
end
상속
Specialthing = Something:New()
s = Specialthing:New( { item = 100 } )
'프로그래밍 > 언어_스크립트' 카테고리의 다른 글
[C/C++] signed 형과 unsigned 형의 비교 (0) | 2014.02.24 |
---|---|
C 함수 C++ 에서 사용하기 (0) | 2013.11.24 |
[lua] 루아의 독특한 문법 몇가지 (0) | 2013.11.10 |
const와 함수 (0) | 2013.05.25 |
C언어의 함수 호출 규칙 (0) | 2012.06.14 |