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

CStr

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

ClassicUO • Runtime API

Преобразует значение скрипта в текст.

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

CStr(value:Any) -> String

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

Параметры

  • value — Любое значение BASIC: число, String, Array, Object или Unit.

Возвращает

String: числа форматируются независимо от языка Windows, с точкой у дробей; строка сохраняется. Array соединяет текст элементов символом |, Object даёт имя типа объекта, Unit — текст . Это представление для вывода, не обратимая сериализация массивов.

Поведение

  • Числовое форматирование не зависит от локализации. Для явного hex без префикса используйте Hex.
  • Разделитель | внутри элементов массива не экранируется. Для хранения структурированных данных используйте явные поля, а не повторный разбор CStr(Array).
  • Циклический массив (прямо или косвенно содержащий себя) и вложенность более 256 уровней вызывают ошибку скрипта. Один и тот же вложенный массив в двух независимых элементах допустим.

Примеры

Пример 1. Дробное число на любом языке интерфейса

# Дробное число на любом языке интерфейса
#
# Преобразует значение скрипта в текст.
#
# String: числа форматируются независимо от языка Windows, с точкой у дробей; строка
# сохраняется. Array соединяет текст элементов символом |, Object даёт имя типа объекта, Unit# текст <unit>. Это представление для вывода, не обратимая сериализация массивов.

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

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

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

  • value — Decimal. Десятичный разделитель всегда точка.
  • Ожидаемый результат: строка -1.25. В result сохраняется результат выражения; Print только показывает его.

Пример 2. Составить сообщение с числом

# Составить сообщение с числом
#
# Преобразует значение скрипта в текст.
#
# String: числа форматируются независимо от языка Windows, с точкой у дробей; строка
# сохраняется. Array соединяет текст элементов символом |, Object даёт имя типа объекта, Unit# текст <unit>. Это представление для вывода, не обратимая сериализация массивов.

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

    VAR result = 'Amount: ' + CStr(50)
    UO.Print(CStr(result))
END SUB

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

  • CStr преобразует Integer для соединения с подписью.
  • Ожидаемый результат: строка Amount: 50. В result сохраняется результат выражения; Print только показывает его.

Пример 3. Сохранить строку без повторного разбора

# Сохранить строку без повторного разбора
#
# Преобразует значение скрипта в текст.
#
# String: числа форматируются независимо от языка Windows, с точкой у дробей; строка
# сохраняется. Array соединяет текст элементов символом |, Object даёт имя типа объекта, Unit# текст <unit>. Это представление для вывода, не обратимая сериализация массивов.

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

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

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

  • Вход уже String: hex не преобразуется в десятичное число.
  • Ожидаемый результат: строка 0x0EED. В result сохраняется результат выражения; Print только показывает его.
⚠️ **GitHub.com Fallback** ⚠️