Skip to content

API GetArrayLength ko

Codex edited this page Oct 4, 2026 · 1 revision

GetArrayLength

Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

API · Basic

ClassicUO • Runtime API

안전한 인덱스 접근과 유한 반복을 위해 Array의 직접 칸 수를 셉니다.

정확한 구문

GetArrayLength(arg:Any) -> Any

매개변수

  • arg — 모든 BASIC 값. Array는 바깥 Length, String·숫자·Object·Unit은 0입니다.

반환값

Integer >= 0. 빈 배열과 다른 종류 모두 0이므로 타입 검증은 아닙니다. 개수이지 Boolean이나 마지막 인덱스가 아닙니다.

동작

  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.
  • 종류를 검사하고 Array.Length를 읽습니다. 순회나 합산은 없습니다. DIM values(2)는 미초기화 칸까지 인덱스 0..2의 세 칸을 만듭니다.
  • 중첩 요소를 재귀적으로 세지 않습니다. String은 Len, List/Dictionary는 자체 Count입니다. UO.GetArrayLength는 같은 로컬 조회의 호환 이름입니다.

내부 함수: 호출부터 결과까지

종류를 검사하고 Array.Length를 읽습니다. 순회나 합산은 없습니다. DIM values(2)는 미초기화 칸까지 인덱스 0..2의 세 칸을 만듭니다.

1. GetArrayLength

종류를 검사하고 Array.Length를 읽습니다. 순회나 합산은 없습니다. DIM values(2)는 미초기화 칸까지 인덱스 0..2의 세 칸을 만듭니다.

Integer >= 0. 빈 배열과 다른 종류 모두 0이므로 타입 검증은 아닙니다. 개수이지 Boolean이나 마지막 인덱스가 아닙니다.

프로젝트 소스: external/InjectionScript/src/InjectionScript/Runtime/InternalSubrutines.cs; 함수 GetArrayLength.

중첩 요소를 재귀적으로 세지 않습니다. String은 Len, List/Dictionary는 자체 Count입니다. UO.GetArrayLength는 같은 로컬 조회의 호환 이름입니다.

예제

수량 합산

# 수량 합산
#
# 안전한 인덱스 접근과 유한 반복을 위해 Array의 직접 칸 수를 셉니다.
#
# Integer >= 0. 빈 배열과 다른 종류 모두 0이므로 타입 검증은 아닙니다. 개수이지 Boolean이나 마지막 인덱스가 아닙니다.

SUB Main()
    # 반복문이 세 칸 0..2를 방문하여 150을 반환합니다. 합산은 반복문이 하며 GetArrayLength가 하지 않습니다.
    # 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

    Dim amounts(2)
    amounts[0] = 50
    amounts[1] = 75
    amounts[2] = 25
    Dim total = 0
    For index = 0 To GetArrayLength(amounts) - 1
        total += amounts[index]
    Next
    Return total
END SUB

매개변수 및 실행 설명:

  • 반복문이 세 칸 0..2를 방문하여 150을 반환합니다. 합산은 반복문이 하며 GetArrayLength가 하지 않습니다.
  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

지점과 좌표를 따로 세기

# 지점과 좌표를 따로 세기
#
# 안전한 인덱스 접근과 유한 반복을 위해 Array의 직접 칸 수를 셉니다.
#
# Integer >= 0. 빈 배열과 다른 종류 모두 0이므로 타입 검증은 아닙니다. 개수이지 Boolean이나 마지막 인덱스가 아닙니다.

SUB Main()
    # 두 지점에 각각 세 필드가 있어 결과는 2|3이며 6이 아닙니다. 캐릭터는 이동하지 않습니다.
    # 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

    Dim first(2)
    first[0] = 100
    first[1] = 200
    first[2] = 0
    Dim second(2)
    second[0] = 101
    second[1] = 200
    second[2] = 0
    Dim route(1)
    route[0] = first
    route[1] = second
    Return CStr(GetArrayLength(route)) & "|" & CStr(GetArrayLength(route[0]))
END SUB

매개변수 및 실행 설명:

  • 두 지점에 각각 세 필드가 있어 결과는 2|3이며 6이 아닙니다. 캐릭터는 이동하지 않습니다.
  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

첫 인덱스 보호

# 첫 인덱스 보호
#
# 안전한 인덱스 접근과 유한 반복을 위해 Array의 직접 칸 수를 셉니다.
#
# Integer >= 0. 빈 배열과 다른 종류 모두 0이므로 타입 검증은 아닙니다. 개수이지 Boolean이나 마지막 인덱스가 아닙니다.

SUB Main()
    # String은 0이므로 인덱스 접근 전에 no route입니다. 빈 Array도 같은 검사로 보호하지만 둘을 구분하지 않습니다.
    # 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

    Dim route = "not an array"
    If GetArrayLength(route) = 0 Then
        Return "no route"
    End If
    Return route[0]
END SUB

매개변수 및 실행 설명:

  • String은 0이므로 인덱스 접근 전에 no route입니다. 빈 Array도 같은 검사로 보호하지만 둘을 구분하지 않습니다.
  • 서버 요청, 아이템 이동, 배열 수정이 없는 로컬 조회입니다. 예제는 현재 가방 대신 고정된 데이터를 사용합니다.

Clone this wiki locally