Mixed table constructor , 즉 혼합형 테이블 이라 할 수 있습니다.
말로는 이해가 어렵습니다.
우리는 table을 이용해서 dictionary 를 구성할 수 있음을 알았습니다. dictionary 에는 키가 있고 그 키에 저장되는 값이 있습니다.
table.key = 값
일반적으로 dictionary 는 키의 자료형태, 즉 데이터 타입이 같은 형태(정수면 정수, 문자열이면 문자열 등등)를 사용합니다.
그러나 루아의 table은 이러한 키의 형태가 같지 않아도 됩니다.
또한 순차적이지 않아도 됩니다.
다음의 예를 살펴보독 하죠.
t = { 2,4,6, language="Lua", version="5.1" }
for k,v in pairs(t) do print(k,v) endfor i,v in ipairs(t) do print(i,v) end
결과는
1 2
2 4
3 6
language Lua
version 5.1
1 2
2 4
3 6
위에서
앞의 for 문에 의해서는 정수로 인덱스(순차적)된 내용과 language, version 으로 명명된 키의 값들도 나옵니다.
그러나 뒤의 for 문에 의해서는 정수로 인덱스된 순차적인 것들만 나옵니다.
이는 pairs() 와 ipairs 의 차이에 의해서 발생하는 결과 입니다. 이 두가지의 차이는 추후 다시 설명하기로 하고
일단 여기서는 하나의 table에 서로 다른 형태의 순차적이지 않은 값들을 동시에 사용할 수 있다는 것 입니다.
c 나 c++ 프로그램을 하다보면, 가끔 위의 형태를 만들기 위하여 노력할 때가 있습니다.
즉 어떠한 데이터 집단을 만들고 그 데이터 집단의 이름과 특징들을 적어놓을 공간을 만들기 위하여 구조체나 class 의
구조화된 형태를 다소 복잡하게 만들어 사용하게 됩니다.
이런 경우 루아의 table은 쉽게 그 형태를 구성하도록 해 줍니다.
'Programming > LUA' 카테고리의 다른 글
[루아스크립트/프로그래밍]루아(LUA)주소로서의 문자열 (0) | 2018.05.13 |
---|---|
[루아스크립트/프로그래밍]루아(LUA)Table key 에 대한 노트 (0) | 2018.05.11 |
[루아스크립트/프로그래밍]루아(LUA)Tables as Dictionaries (0) | 2018.05.11 |
[루아스크립트/프로그래밍]루아(LUA) 테이블 (1) | 2018.05.07 |
[루아스크립트/프로그래밍]루아(LUA)에서의 main 함수 (1) | 2018.05.07 |