루아 배열
배열은 동일한 데이터 유형의 요소를 특정 순서로 배열한 집합입니다. 1차원 배열일 수도 있고 다차원 배열일 수도 있습니다.
Lua 배열의 인덱스 키 값은 정수로 표현이 가능하며, 배열의 크기는 고정되어 있지 않습니다.
1차원 배열
1차원 배열은 가장 간단한 배열이며, 논리적 구조는 선형 테이블입니다. 1차원 배열은 다음 예와 같이 for 루프를 사용하여 배열의 요소를 반복할 수 있습니다.
array = {"Lua", "Tutorial"} for i= 0, 2 do print(array[i]) end
위 코드 실행의 출력 결과는 다음과 같습니다.
nil Lua Tutorial
보시다시피 예, 정수 인덱스를 사용하여 배열 요소에 액세스할 수 있으며, 알려진 인덱스에 값이 없으면 nil을 반환합니다.
Lua 인덱스 값은 1부터 시작하지만 0을 시작점으로 지정할 수도 있습니다.
또한 배열 인덱스 값으로 음수를 사용할 수도 있습니다.
array = {} for i= -2, 2 do array[i] = i *2 end for i = -2,2 do print(array[i]) end
위 코드를 실행한 결과는 다음과 같습니다.
-4 -2 0 2 4
다차원 배열
다차원 배열이란 배열에 배열이 포함되어 있거나 1차원 배열의 인덱스 키가 배열에 해당하는 것을 의미합니다.
다음은 3행, 3열 배열 다차원 배열입니다.
-- 初始化数组 array = {} for i=1,3 do array[i] = {} for j=1,3 do array[i][j] = i*j end end -- 访问数组 for i=1,3 do for j=1,3 do print(array[i][j]) end end
위 코드 실행 결과는 다음과 같습니다.
1 2 3 2 4 6 3 6 9
3행, 3행 -column array 인덱스 키가 다른 다차원 배열 :
-- 初始化数组 array = {} maxRows = 3 maxColumns = 3 for row=1,maxRows do for col=1,maxColumns do array[row*maxColumns +col] = row*col end end -- 访问数组 for row=1,maxRows do for col=1,maxColumns do print(array[row*maxColumns +col]) end end
위 코드를 실행한 결과는 다음과 같습니다.
1 2 3 2 4 6 3 6 9
보시다시피 위의 예에서는 배열이 설정됩니다. nil 값을 방지할 수 있는 지정된 인덱스 값으로 메모리 공간을 절약하는 데 도움이 됩니다.