리스트에서 항목 가져오기 (Get List Item At)
이 문서는 제공된 리스트에서 항목의 인덱스 위치를 회복하는 방법을 설명합니다. `Create List` 액션에 의해 반환된 리스트 인덱스를 저장할 변수와 리스트에서 아이템 값을 가져올 인덱스 위치를 제공해야 합니다. 반환된 아이템 값을 저장할 대상 변수를 지정할 수 있으며, 이 변수는 스크립트나 이벤트의 끝까지 사용할 수 있는 임시 지역 변수로 플래그가 지정될 수 있습니다.
## 주의 사항
- 제공된 리스트 크기 범위를 벗어난 위치 (예: 크기가 10인 리스트에서 11번 위치)를 지정하면 이 액션은 `undefined`를 반환합니다. 이를 확인하기 위해 `If Undefined` 액션을 사용할 수 있습니다.
## 액션 구문 (Action Syntax)
### 인수 (Arguments)
|인수|설명|
|---|---|
|List|제거할 리스트의 인덱스 (변수에 저장)|
|Index|리스트 내에서 아이템을 가져올 위치|
|Target|반환된 값을 저장할 대상 변수|
## 예시 (Example)
다음 예제는 글로벌 변수에서 참조된 리스트의 크기를 가져오고, 반복문을 사용하여 리스트에 저장된 ID로 인스턴스를 파괴합니다. 반복이 끝난 후, 메모리에서 리스트가 해제됩니다.
```gml
var myList = CreateList("Item1", "Item2", "Item3"); // 리스트 생성
var itemCount = ListSize(myList); // 리스트 크기 가져오기
for (var i = 0; i < itemCount; i++) {
var item = GetListItemAt(myList, i); // 리스트에서 항목 가져오기
if (item != undefined) {
// 인스턴스를 파괴하는 코드
InstanceDestroy(item);
}
}
// 리스트 메모리 해제
FreeList(myList);
다양한 활용 및 응용 예제
1. 사용자 입력으로 리스트 항목 가져오기
사용자가 원하는 항목의 인덱스를 입력 받아 해당 리스트 항목을 출력할 수 있습니다.
var userIndex = GetUserInput(); // 사용자로부터 인덱스 입력받기
var myList = CreateList("Apple", "Banana", "Cherry");
var fruit = GetListItemAt(myList, userIndex);
if (fruit != undefined) {
ShowMessage("선택한 과일: " + fruit);
} else {
ShowMessage("유효하지 않은 인덱스입니다.");
}
2. 리스트에서 최대값 찾기
리스트에서 최대값을 찾아 출력하는 예제입니다.
var myList = CreateList(10, 20, 5, 40, 25);
var maxVal = GetListItemAt(myList, 0); // 리스트의 첫 번째 값을 최대값으로 설정
for (var i = 1; i < ListSize(myList); i++) {
var currentVal = GetListItemAt(myList, i);
if (currentVal > maxVal) {
maxVal = currentVal; // 최대값 업데이트
}
}
ShowMessage("리스트의 최대값: " + string(maxVal));
3. 리스트에서 조건에 맞는 항목 찾기
특정 조건 (예: 값이 15보다 큰 항목)을 만족하는 리스트 항목을 찾는 예제입니다.
var myList = CreateList(10, 15, 20, 5, 30);
var foundItems = CreateList(); // 조건 만족하는 항목 저장용 리스트
for (var i = 0; i < ListSize(myList); i++) {
var currentVal = GetListItemAt(myList, i);
if (currentVal > 15) {
// 조건에 맞는 항목 추가
AddToList(foundItems, currentVal);
}
}
ShowMessage("15보다 큰 항목: " + foundItems);
이 예제들은 리스트에서 특정 항목을 쉽게 가져오고 조작하는 방법을 보여줍니다. 다양한 응용을 통해 리스트와 관련된 작업을 간단하게 수행할 수 있습니다. ```