API Basic Concatenation - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

String + / &

ClassicUO • Basic

Соединяйте текст через + или совместимую запись Basic &. Числа явно преобразуйте через CStr, прежде чем добавлять в сообщение подписи, количество или координаты.

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

leftText + rightText
leftText & rightText
"label" & CStr(number)

Параметры

  • leftText — Левый текст: литерал, переменная String либо преобразованный в текст результат функции.
  • rightText — Правый текст. CStr(number) преобразует число; CStr(Unit) даёт пустую строку. Пробелы, двоеточия и другие разделители указывайте сами.

Возвращает

String, если оба операнда String. Флаг успешности не возвращается. В этом движке & преобразуется в + и наследует его правила: два числа складываются численно, поэтому 2 & 3 даёт Integer 5. Смешение String/числа вызывает ошибку. Это отличается от неявного преобразования текста в VB.

Поведение

  • Обе стороны вычисляются и соединяются по порядку. Цепочка соединений идёт слева направо. Числовой расчёт заключайте в скобки и преобразуйте его результат перед соединением.
  • Разделители, пробелы, кавычки и переводы строки автоматически не добавляются. & внутри строкового литерала остаётся символом амперсанда. Логический токен && сохраняет значение AND и не соединяет текст.
  • CStr форматирует числа независимо от языка клиента, с точкой в дробях. Преобразование и соединение ничего не печатают и не отправляют: при необходимости передайте полученную String следующему API.
  • Строки неизменяемы: соединение создаёт новое значение и не меняет исходные переменные. Постоянное наращивание большой строки копирует её содержимое; формируйте нужный вывод, а не весь отчёт заново на каждой итерации цикла.

Примеры

1. Добавить количество к подписи

# amount=50 имеет вид Integer. CStr(amount) даёт "50". Литерал "Items: " содержит двоеточие и пробел в конце. Main возвращает "Items: 50"; автоматической печати нет.
Option Explicit On
SUB Main()
    VAR amount = 50
    RETURN "Items: " & CStr(amount)
END SUB

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

amount=50 имеет вид Integer. CStr(amount) даёт "50". Литерал "Items: " содержит двоеточие и пробел в конце. Main возвращает "Items: 50"; автоматической печати нет.

2. Полная функция форматирования

# Label получает name="ore", amount=3. Соединяет имя, явно заданное двоеточие и CStr(amount). Полностью приведённая функция возвращает Main строку "ore:3"; её можно вызывать с другими именами и количествами.
Option Explicit On
FUNCTION Label(name, amount)
    RETURN name + ":" + CStr(amount)
END FUNCTION
SUB Main()
    RETURN Label("ore", 3)
END SUB

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

Label получает name="ore", amount=3. Соединяет имя, явно заданное двоеточие и CStr(amount). Полностью приведённая функция возвращает Main строку "ore:3"; её можно вызывать с другими именами и количествами.

3. Сначала вычислить, затем соединить

# CStr(2+3) сначала вычисляет 5, затем преобразует в "5". Второй литерал содержит точку с запятой, пробелы и A&B — эти символы сохраняются. Main возвращает "Total: 5; literal: A&B".
Option Explicit On
SUB Main()
    RETURN "Total: " & CStr(2 + 3) & "; literal: A&B"
END SUB

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

CStr(2+3) сначала вычисляет 5, затем преобразует в "5". Второй литерал содержит точку с запятой, пробелы и A&B — эти символы сохраняются. Main возвращает "Total: 5; literal: A&B".


en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic