반응형

루아에서의 테이블은 매우 중요한 내용이다.

테이블은 매우 독특하며 그 사용면에서 광범위하다.

루아의 객체지향성을 위하여 사용되기도 한다.

 

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)


+ Recent posts