array_copy 함수 설명
array_copy
함수는 배열의 일부 또는 전체를 다른 배열의 특정 위치에 복사하는 기능을 제공합니다. 이 함수는 소스 배열과 대상 배열을 모두 제공해야 하며, 소스 배열에서 복사할 시작 위치와 대상 배열에서 복사할 위치를 지정해야 합니다. 마지막으로 복사할 배열의 길이(또는 복사하고자 하는 부분의 길이)를 지정해야 합니다. 이 함수는 다차원 배열에도 사용할 수 있으며, 복사할 차원을 지정해야 합니다.
사용법
// 배열의 첫 번째 차원으로 복사
array_copy(item_array, 0, inventory_array[0], 0, len);
// 배열의 세 번째 차원으로 복사
array_copy(item_array[0][0], 0, inventory_array, 0, len);
사용 시 주의사항
- 소스 및 대상 인덱스와 요소 수에 대해 음수 값을 지정할 수 있습니다.
- 소스 인덱스와 길이로 지정된 범위는 소스 배열의 경계를 넘어서는 안 됩니다. 배열의 경계를 넘어 읽으려 하면 오류가 발생합니다.
- 복사되는 데이터가 대상 배열의 길이를 초과하면 배열이 확장되어 데이터를 수용합니다. 대상 인덱스가 대상 배열의 크기보다 크면 0이 삽입됩니다. 음수 대상 오프셋은 0으로 잘립니다.
문법
array_copy(dest, dest_index, src, src_index, length);
인자 | 타입 | 설명 |
---|---|---|
dest | Array | 복사할 대상 배열의 참조입니다. |
dest_index | Real | 복사할 대상 배열 내의 인덱스입니다. 음수 인덱스는 배열의 끝에서부터 계산됩니다. |
src | Array | 복사할 소스 배열의 참조입니다. |
src_index | Real | 복사할 소스 배열 내의 시작 인덱스입니다. 음수 인덱스는 배열의 끝에서부터 계산됩니다. |
length | Real | 복사할 길이(배열 인덱스 수)입니다. 음수 값을 제공할 수 있으며, 이 경우 역방향으로 복사됩니다. |
예제
예제 1: 기본 사용법
if (!array_equals(inventory_array, item_array)) {
var _len = array_length(inventory_array);
array_copy(item_array, 0, inventory_array, 0, _len);
}
위 코드는 두 배열을 비교하여 값이 동일하지 않으면 inventory_array
의 전체 내용을 item_array
로 복사합니다.
예제 2: 음수 길이 사용
var _a = [1, 2, 3, 4];
var _b = [5, 6, 7, 8];
array_copy(_a, 1, _b, -1, -2);
show_debug_message(_a);
위 예제에서는 두 개의 임시 배열 _a
와 _b
가 초기화됩니다. _b
에서 마지막 두 요소가 _a
로 복사됩니다.
예제 3: 대상 배열 확장
var _a = [-3, -2, -1];
var _b = [1, 2, 3];
array_copy(_a, 5, _b, 0, 3);
show_debug_message(_a);
위 코드는 대상 배열의 길이를 초과하는 위치에 복사하는 예를 보여줍니다. _b
의 전체 내용이 _a
의 인덱스 5에 복사됩니다.
활용 예제
예제 1: 다차원 배열 복사
var multi_array = [[1, 2], [3, 4]];
var target_array = [[0, 0], [0, 0]];
array_copy(multi_array[1], 0, target_array, 0, 2);
예제 2: 배열의 특정 부분 복사
var source_array = [10, 20, 30, 40, 50];
var dest_array = [];
array_copy(source_array, 2, dest_array, 0, 3);
예제 3: 음수 인덱스 사용
var arr = [100, 200, 300, 400];
array_copy(arr, -2, arr, -1, -2);
이 문서에서는 array_copy
함수의 사용법과 다양한 예제를 통해 배열 복사의 개념을 쉽게 이해할 수 있도록 설명하였습니다.