루아 table의 인덱스는 꼭 정수가 아니라도 된다.
C언어에서의 배열의 인덱스는 반드시 0이상의 자연수여야 하며, 문자들을 인덱스에 쓸려면 문자를 전역변수로 숫자로 치환하게 하거나, enum함수를 쓰는 것이다.
반면 루아의 table는 그대로 문자를 인덱스로 취하며,
더 강력한 점은 인덱스가 문자 뿐만 아니라 변수, 다른 table 심지어 함수까지도 그대로 인덱스로 취한다.
이때 여기서 인덱스라는 말보다 table key라는 용어를 쓴다.
ex)
t1 = { ["장곰부대"] = 103}
=> t1[장곰부대] == 103
t2 = { "dcbk201" = "janggom"}
=> t2.dcbk201 == "janggom"
키가 영문자일경우는 [ ] 를 사용하지 않아도 된다.
배열식 표기대신 C언어의 객체 연산자 "."를 사용할수 도 있다.
T={1,2,3}
t3 = { [{1,2,3}]="yadda" }
t3[T] == "yadda"
t4 = { [function(x) print(x) end] = "foo" }
이거에 대한 추가적인 설명..
'lua' 카테고리의 다른 글
루아 테이블(table) (0) | 2012.11.16 |
---|---|
lua 전역변수와 지역변수 (0) | 2012.11.11 |
루아 주석 (0) | 2012.11.08 |
lua 루프 (0) | 2012.11.07 |
루아 조건문 (0) | 2012.11.05 |