테이블

 

Ruby언어의 Hash, Python언어의 Dictionary, Java의 Map과 같은 자료형이다.

다만, 루아의 테이블은 복합 자료형이면서도 중요한 역활을 한다. key-value가 아닌 배열이나 객체 프로그래밍을 할 때 필요하기 때문이다. 


우선 테이블은 익명성이라는 특징을 가진다.

> cool_table = {}
> print(cool_table)
table: 0x8268920

 

테이블 그 자체의 출력 값은 테이블 요소 값의 관계로써 별 의미가 없다.

 

 

 

> cool_table["name"] = "짱구"
> cool_table["age"] = "다섯살"
> print(cool_table["name"].."는 몇십년째 "..cool_table["age"].."이야.")
짱구는 몇십년째 다섯살이야.

 

> print(cool_table)
table: 0x8268920

 

> print(cool_table["poo"])
nil


선언과 호출은 간단하다. 마치 key-value꼴로 쓴다. key에 들어갈 자료형은 무엇이든지 상관없다만 nil을 key로 쓸 수 없다.

후에 cool_table을 다시 print()로 찍어보았지만 요소와는 별 관계가 없음을 알 수 있다.

또한 없는 key를 호출할 경우 쓰레기값인 nil을 돌려받는다.

 

 

 

> cool_table = {["name"]="짱구", ["age"]="다섯살"}


테이블은 이렇게도 만들 수 있다.

전체적으로 {}로 감싸며 key는 []로 감싼 형태이다.

 

 

 

> cool_table = {}
> cool_table["age"] = "다섯살"
> cool_desk = {}
> cool_desk.age = "다섯살"

> =(cool_table == cool_desk)
false


만드는 방법이 다를 뿐, cool_table과 cool_desk는 서로 같은 key-value를 가진 테이블이지만

참조부분이 다르므로 결과적으로 false다.

 


 

'게임개발공부 > LUA공부' 카테고리의 다른 글

조건문  (0) 2014.01.13
문자열 정리  (0) 2014.01.13
연산자.  (0) 2014.01.13
루아의 변수 선언과 규칙.  (0) 2014.01.13
루아스크립트 콘솔에서 실행하기  (0) 2014.01.13
Posted by JJOREG