English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
배열은 동일한 데이터 타입의 요소가 특정 순서로 배열된 집합으로, 일维 배열과 다중 배열이 될 수 있습니다.
Lua 배열의 인덱스 키 값은 정수로 표현할 수 있으며, 배열의 크기는 고정되어 있지 않습니다.
일维 배열은 가장 간단한 배열로, 논리 구조는 선형 표입니다. 일维 배열은 for 루프를 사용하여 배열 내 요소를 꺼낼 수 있습니다. 예제를 보면 다음과 같습니다:
array = {"Lua", "Tutorial"} for i= 0, 2 do print(array[i]) end
위 코드 실행 결과는 다음과 같습니다:
nil Lua 튜토리얼
위에서 볼 수 있듯이, 정수 인덱스를 사용하여 배열 요소에 접근할 수 있으며, 인덱스 값이 없으면 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
다중 배열은 배열 내에 배열이나 일维 배열이 포함되어 있으며, 인덱스 키가 배열에 해당하는 배열입니다.
다음은 세 행 세 열의 배열 다중 배열입니다:
-- 배열 초기화 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
다른 인덱스 키의 세 행 세 열 배열 다중 배열:
-- 배열 초기화 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 값이 발생하지 않도록 하고, 메모리 공간을 절약하는 데 유리합니다.