API Basic Concatenation uk - 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".