Skip to content

API GetArrayLength

Codex edited this page Sep 19, 2026 · 5 revisions

GetArrayLength

Оглавление · Алфавитный указатель · BASIC built-ins

ClassicUO • Runtime API

Читает длину внешнего уровня массива.

Точный синтаксис

GetArrayLength(arg:Any) -> Any

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

  • arg — Значение Array. Строка, число, Object или Unit не являются массивом и дают 0.

Возвращает

Integer — число элементов внешнего массива. Пустой массив и значение другого вида дают 0. Вложенные элементы не суммируются. Для пути с начальной записью число шагов равно длине минус 1 только при непустом результате.

Поведение

  • Индексы массива идут от 0 до длины-1. DIM items(2) задаёт верхний индекс 2 включительно и создаёт три элемента. Проверяйте длину перед обращением по индексу.
  • Команда не изменяет массив, не обходит вложенные массивы и не считает символы строки.

Примеры

Пример 1. Размер созданного массива

# Размер созданного массива
#
# Читает длину внешнего уровня массива.
#
# Integerчисло элементов внешнего массива. Пустой массив и значение другого вида дают 0.
# Вложенные элементы не суммируются. Для пути с начальной записью число шагов равно длине минус
# 1 только при непустом результате.

SUB Main()
    # DIM items(2) создаёт три элемента с индексами 0,1,2; число в скобкахверхний индекс.
    # Результат равен 3; это не максимальный индекс.

    DIM items(2)
    UO.Print(STR(GetArrayLength(items)))
END SUB

Разбор параметров и выполнения:

  • DIM items(2) создаёт три элемента с индексами 0,1,2; число в скобках — верхний индекс.
  • Результат равен 3; это не максимальный индекс.

Пример 2. Проверить путь перед чтением первой точки

# Проверить путь перед чтением первой точки
#
# Читает длину внешнего уровня массива.
#
# Integerчисло элементов внешнего массива. Пустой массив и значение другого вида дают 0.
# Вложенные элементы не суммируются. Для пути с начальной записью число шагов равно длине минус
# 1 только при непустом результате.

SUB Main()
    # pathмассив записей пути; команда читает внешний размер.
    # Проверка выполняется до path[0]. first[0] — мировая координата X исходной записи.

    VAR path = UO.GetPathArray(UO.GetX() + 2, UO.GetY(), TRUE, 0)
    IF GetArrayLength(path) > 0 THEN
        VAR first = path[0]
        UO.Print(STR(first[0]))
    END IF
END SUB

Разбор параметров и выполнения:

  • path — массив записей пути; команда читает внешний размер.
  • Проверка выполняется до path[0]. first[0] — мировая координата X исходной записи.

Пример 3. Строка не является массивом

# Строка не является массивом
#
# Читает длину внешнего уровня массива.
#
# Integerчисло элементов внешнего массива. Пустой массив и значение другого вида дают 0.
# Вложенные элементы не суммируются. Для пути с начальной записью число шагов равно длине минус
# 1 только при непустом результате.

SUB Main()
    # text имеет вид String.
    # Возвращается 0. Для длины текста нужна Len(text), которая здесь дала бы 3.

    VAR text = 'abc'
    UO.Print(STR(GetArrayLength(text)))
END SUB

Разбор параметров и выполнения:

  • text имеет вид String.
  • Возвращается 0. Для длины текста нужна Len(text), которая здесь дала бы 3.

Clone this wiki locally