ds_list_is_list 함수 설명
ds_list_is_list
함수는 주어진 DS 리스트 내 특정 위치에 다른 DS 리스트가 저장되어 있는지를 확인하는 기능을 제공합니다. 만약 해당 위치에 DS 리스트 ID가 존재한다면, 함수는 true
를 반환하고, 그렇지 않으면 false
를 반환합니다. 이 함수는 ds_list_mark_as_list
함수를 사용하여 수동으로 마킹된 리스트만 감지합니다.
문법
ds_list_is_list(id, pos);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
id | DS List | 확인할 리스트의 핸들 |
pos | Real | 확인할 리스트 내의 위치 |
반환값
- Boolean: 주어진 위치에 DS 리스트가 존재하면
true
, 그렇지 않으면false
를 반환합니다.
예제
다음 코드는 DS 리스트를 반복하면서 각 항목이 다른 리스트 ID를 포함하고 있는지 확인합니다. 만약 포함하고 있다면 해당 리스트를 파괴하고, 반복이 끝난 후 메인 리스트도 파괴합니다.
var size = ds_list_size(ships);
for (var i = 0; i < size; i++) {
if (ds_list_is_list(ships, i)) {
||
||
}
}
ds_list_destroy(ships);
활용 예제
- 리스트 내 리스트 확인 ```gml var mainList = ds_list_create(); var subList = ds_list_create(); ds_list_mark_as_list(mainList, 0); || ||
if (ds_list_is_list(mainList, 0)) { show_message("첫 번째 항목은 리스트입니다."); } ```
- 리스트 정리 ```gml var itemList = ds_list_create(); for (var i = 0; i < 5; i++) { var tempList = ds_list_create(); ds_list_mark_as_list(itemList, i); || || }
for (var i = 0; i < ds_list_size(itemList); i++) { if (ds_list_is_list(itemList, i)) { || || } } ds_list_destroy(itemList); ```
- 중첩 리스트 관리 ```gml var parentList = ds_list_create(); var childList1 = ds_list_create(); var childList2 = ds_list_create(); ds_list_mark_as_list(parentList, 0); || || ds_list_mark_as_list(parentList, 1); || ||
for (var i = 0; i < ds_list_size(parentList); i++) { if (ds_list_is_list(parentList, i)) { show_message("중첩 리스트 발견!"); } } ```
이러한 예제들은 ds_list_is_list
함수를 활용하여 DS 리스트를 효과적으로 관리하고, 중첩된 리스트를 확인하는 방법을 보여줍니다.