--lua table : 자료관리에 가장 강력한 연관배열
--배열처럼도 쓰고 구조체처럼도 쓴다.
t = {} --이렇게 선언.
t[0] = 10
t[1] = "alpha"
t[2] = true
t[3] = nil
for i=0, 3 do
print(t[i])
end
--이렇게 함수를 객체로 저장할 수 있음
t2 = {}
t2.name = "table name"
function pt(a)
print("print argument : "..a)
end
t2.ptfunc = pt
t2.ptfunc(t2.name)
------ 테이블의 기본함수들
--table.getn(table)
print("table.getn(tb) : "..table.getn(t))
--table.sort(table [, comp])
numt = {}
numt[1]=43
numt[2]=10
numt[3]=59
numt[4]=1
table.sort(numt) --두번째인자는 갑비교루틴
--특이한건, 인덱스 1부터 정렬하고 0번째껀 무시함
for i=0, table.getn(numt) do
print(numt[i])
end
--추가, 제거
--table.insert(numt, 3, "inserted")
--print(numt[2],numt[3],numt[4])
--table.remove(numt,3)
--print(numt[2],numt[3],numt[4])
--특이한거는 pairs 이놈
--반복문에서 테이블의 모든요소에 접근할때 사용되고, 구조체
--모든멤버에 접근할때 유용
--in 키워드랑 같이 사용한다.
tb={
id=1,
describe="this is table struct",
isStruct = true,
alpabetic_arrange = "tb storage as alpabeticaly",
}
print("\npairs test")
for i, v in pairs(tb) do
print(":"..tostring(v))
end
--하나 알아낸건, 테이블에 요소들은
--numaric type(실수, 부울)이 앞에 저장되고
--문자열은 뒤에 저장되며
--저장될땐 같은타입들 내에서 변수명 알파벳 순이라는거 ㅋ
--lua 의 table은 진짜 강력한 것 같다.
'Coding Note' 카테고리의 다른 글
[C++] C++ callback and delegate (0) | 2012.05.27 |
---|---|
[Data Structure] Red Black Tree (0) | 2012.05.27 |
[Lua] 함수 (0) | 2012.03.19 |
[Lua] first (1) | 2012.03.18 |
[CUDA] kernel 호출방법 (0) | 2012.03.14 |