루아에서의 테이블은 매우 중요한 내용이다.
테이블은 매우 독특하며 그 사용면에서 광범위하다.
루아의 객체지향성을 위하여 사용되기도 한다.
table 생성
table명 = {}
예)
t = {}
테이블은 위와 같이 {} 에 의하여 초기화 된다. 그냥 table 변수를 생성한다고 보면 된다. 단 {} 로 하면 테이블로 선언 되지만 그 내용은 비어 있다고 보면 된다.
배열로서의 테이블
테이블을 이용하여 배열을 표현할 수 있다. 테이블을 생성할 때 배열의 각 요소들을 콤마(,) 로 구분하여 정의 할 수 있다.
또한 배열의 각 요소들은 대괄호 [ index ] 에 의하여 인덱싱되어 접근할 수 있다.
t = { 1,1,2,2,3,4,5,5 }
print( t[1] )
결과
1
테이블의 인덱싱은 1부터 시작한다. c/c++ 에서 배열의 첫번째 값은 인덱스 0 에 있지만 루아에서는 1에 있다.
t = { 1,1,2,3,5,8,13 }
은 다음과 같은 문장과 동일하다.
t[1]=1 t[2]=1 t[3]=2 t[4]=3 t[5]=5 t[6]=8 t[7]=13
테이블의 크기 알아내기
테이블의 크기는 # 연산자를 이용하여 알아낼 수 있다.
t = { 1,1,2,3,5,8,13 }
print(#t)
결과
7
참고적으로 위의 # 연산자는 다음과 같은 table 함수로 대치할 수 있다.
t = { 1,1,2,3,5,8,13 }
print(table.getn(t))
테이블에 값 추가하기
테이블에 다음과 같은 테이블 함수를 이용하여 값을 추가할 수 있다.
table.insert(t,21)
table.insert 함수는 인수가 2개 또는 3개를 사용한다.
table.insert(table,value) -- 테이블의 끝에 추가
table.insert(table,position,value) -- 테이블의 특정 위치에 추가
테이블에서 특정 위치의 값 지우기
table.remove(table,position)
'Programming > LUA' 카테고리의 다른 글
[루아스크립트/프로그래밍]루아(LUA)Mixed table constructors (0) | 2018.05.11 |
---|---|
[루아스크립트/프로그래밍]루아(LUA)Tables as Dictionaries (0) | 2018.05.11 |
[루아스크립트/프로그래밍]루아(LUA)에서의 main 함수 (1) | 2018.05.07 |
[루아스크립트/프로그래밍]루아(LUA)에서는 함수도 변수 (0) | 2018.05.06 |
[루아스크립트/프로그래밍]루아(LUA)에서의 변수의 이해 (0) | 2018.05.06 |