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

String

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

ClassicUO • Runtime API

Повторяет один символ заданное число раз.

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

String(count:Integer, value:String) -> String
String(count:Integer, characterCode:Integer) -> String

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

Параметры

  • count — Количество повторений; <=0 даёт пустую строку. Очень большие числа требуют много памяти.
  • value / characterCode — Строковая форма берёт только первую единицу UTF-16 из value, пустая строка выбирает NUL. Числовая форма ограничивает characterCode диапазоном 0..65535; это один UTF-16 char, в отличие от Chr с полным Unicode-кодом.

Возвращает

String — count повторений одного char. Строка "abc" повторяет только "a", не весь текст. Для полного Unicode-символа вне BMP эта команда не является заменой Chr.

Поведение

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

Примеры

Пример 1. Разделительная линия

# Разделительная линия
#
# Повторяет один символ заданное число раз.
#
# String — count повторений одного char. Строка "abc" повторяет только "a", не весь текст. Для
# полного Unicode-символа вне BMP эта команда не является заменой Chr.

SUB Main()
    # count=5, value="-".
    # Ожидаемый результат: строка -----. В result сохраняется результат выражения; Print только
    # показывает его.

    VAR result = String(5, '-')
    UO.Print(CStr(result))
END SUB

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

  • count=5, value="-".
  • Ожидаемый результат: строка -----. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Числовой код символа

# Числовой код символа
#
# Повторяет один символ заданное число раз.
#
# String — count повторений одного char. Строка "abc" повторяет только "a", не весь текст. Для
# полного Unicode-символа вне BMP эта команда не является заменой Chr.

SUB Main()
    # characterCode=65 означает A, count=3.
    # Ожидаемый результат: строка AAA. В result сохраняется результат выражения; Print только
    # показывает его.

    VAR result = String(3, 65)
    UO.Print(CStr(result))
END SUB

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

  • characterCode=65 означает A, count=3.
  • Ожидаемый результат: строка AAA. В result сохраняется результат выражения; Print только показывает его.

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

# Строка из нескольких символов
#
# Повторяет один символ заданное число раз.
#
# String — count повторений одного char. Строка "abc" повторяет только "a", не весь текст. Для
# полного Unicode-символа вне BMP эта команда не является заменой Chr.

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

    VAR result = String(3, 'abc')
    UO.Print(CStr(result))
END SUB

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

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