API len - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

len

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

ClassicUO • Runtime API

Возвращает длину строки или текстового представления числа.

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

len(value:String) -> Integer
len(value:Integer) -> Integer
len(value:Decimal) -> Integer

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

Параметры

  • value — String, Integer или Decimal. Для числа сначала используется форматирование с точкой, без учёта языка Windows.

Возвращает

Integer — число единиц UTF-16. У чисел учитываются знак и десятичный разделитель. Пустая строка даёт 0. Для размера массива используйте GetArrayLength, а не Len.

Поведение

  • Выполняется локально и не обращается к игровому серверу. Исходная строка не изменяется: результат нужно сохранить или передать дальше.
  • Позиции и длины строк считаются в единицах UTF-16. Символ за пределами BMP, например emoji, занимает две единицы. Это не количество байтов UTF-8.

Примеры

Пример 1. Обычная строка

# Обычная строка
#
# Возвращает длину строки или текстового представления числа.
#
# Integer — число единиц UTF-16. У чисел учитываются знак и десятичный разделитель. Пустая
# строка даёт 0. Для размера массива используйте GetArrayLength, а не Len.

SUB Main()
    # Пять латинских букв занимают пять единиц UTF-16.
    # Ожидаемый результат: 5. В result сохраняется результат выражения; Print только показывает его.

    VAR result = Len('hello')
    UO.Print(CStr(result))
END SUB

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

  • Пять латинских букв занимают пять единиц UTF-16.
  • Ожидаемый результат: 5. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Знаковое число

# Знаковое число
#
# Возвращает длину строки или текстового представления числа.
#
# Integer — число единиц UTF-16. У чисел учитываются знак и десятичный разделитель. Пустая
# строка даёт 0. Для размера массива используйте GetArrayLength, а не Len.

SUB Main()
    # Текст -125 содержит знак и три цифры.
    # Ожидаемый результат: 4. В result сохраняется результат выражения; Print только показывает его.

    VAR result = Len(-125)
    UO.Print(CStr(result))
END SUB

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

  • Текст -125 содержит знак и три цифры.
  • Ожидаемый результат: 4. В result сохраняется результат выражения; Print только показывает его.

Пример 3. Пустой текст

# Пустой текст
#
# Возвращает длину строки или текстового представления числа.
#
# Integer — число единиц UTF-16. У чисел учитываются знак и десятичный разделитель. Пустая
# строка даёт 0. Для размера массива используйте GetArrayLength, а не Len.

SUB Main()
    # У пустой строки нет символов.
    # Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.

    VAR result = Len('')
    UO.Print(CStr(result))
END SUB

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

  • У пустой строки нет символов.
  • Ожидаемый результат: 0. В result сохраняется результат выражения; Print только показывает его.