API Basic Literals uk - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
123 / 0x0EED / "text" / TRUE
ClassicUO • Basic
Літерал записує значення безпосередньо у вихідному коді. Числа та текст у лапках не потребують оголошення. TRUE і FALSE — наперед визначені логічні значення. Число в лапках залишається текстом до явного перетворення або застосування типу оголошення.
Точний синтаксис
123
-2147483648
0x0EED
0xFFFFFFFF
2.5
"text"
'text'
TRUE
FALSE
Параметри
integer / hexadecimal— Десятковий Integer від -2147483648 до 2147483647 або 0x із шістнадцятковими цифрами 0–9/A–F. Префікс x пишеться малою літерою. Літерал задає 32 біти: 0xFFFFFFFF — Integer -1, а не додатне 64-бітне число.floating— Дробове число з цифрами до й після крапки: 2.5 або -0.25. Пишіть 0.5, а не .5. Кома, експоненційна форма 1e3 і суфікси числових літералів цією граматикою не підтримуються.text— Текст у парних одинарних або подвійних лапках. Для лапки всередині використовуйте інший вид або Chr(34)/Chr(39) під час складання тексту. Escape-послідовності зі зворотною скісною рискою та подвоєні лапки не інтерпретуються. Рядок прикладу розміщуйте на одному фізичному рядку.TRUE / FALSE— TRUE — Integer 1, FALSE — Integer 0. Не оголошуйте ці імена повторно. Це значення, не виклики: TRUE, а не TRUE().
Повертає
Цілий/шістнадцятковий літерал дає Integer; число з крапкою — Decimal, двійкове число з рухомою комою; текст у лапках — String. TRUE/FALSE дають Integer 1/0. Обчислення значення не виконує ігрову дію та не оголошує змінну.
Поведінка
- Знак у -5 — унарна операція. -2147483648 обробляється як мінімальне знакове ціле без вимоги спочатку вмістити додатний модуль. Цілі поза діапазоном спричиняють помилку; для більшого наближеного числа в розрахунку використовуйте відповідне дробове значення.
- Текст зберігає символи й регістр. "350" — не число 350, "false" — не FALSE. # і ; в лапках є текстом, поза ними починають коментар. Перетворення AS і функцій описано у статті AS та картках функцій.
- Лексер розпізнає літерал. Рушій розбирає десяткове/шістнадцяткове ціле або дробове число незалежно від локалі, а з тексту прибирає зовнішні лапки. Мова IDE не змінює десятковий роздільник вихідного коду.
- Ігрові API розрізняють serial, графічний type і координату, навіть якщо всі вони числові. Сам літерал цього значення не задає: призначення визначає параметр викликаної команди.
Приклади
1. Шістнадцятковий type і межа Integer
# itemType=0x0EED дорівнює десятковому 3821. lowest=-2147483648 дорівнює знаковому бітовому запису 0x80000000. Порівняння успішне, Main повертає itemType=3821. Це перевірка значень, а не пошук предмета.
Option Explicit On
SUB Main()
VAR itemType = 0x0EED
VAR lowest = -2147483648
IF lowest = 0x80000000 THEN
RETURN itemType
END IF
RETURN 0
END SUB
Пояснення параметрів і виконання:
itemType=0x0EED дорівнює десятковому 3821. lowest=-2147483648 дорівнює знаковому бітовому запису 0x80000000. Порівняння успішне, Main повертає itemType=3821. Це перевірка значень, а не пошук предмета.
2. Два види лапок
# owner="O'Brien" містить апостроф. instruction використовує одинарні лапки навколо тексту з подвійними. Поєднання owner, " | " та instruction повертає O'Brien | say "go". Екранувальні зворотні риски в скрипті не потрібні.
Option Explicit On
SUB Main()
VAR owner = "O'Brien"
VAR instruction = 'say "go"'
RETURN owner + " | " + instruction
END SUB
Пояснення параметрів і виконання:
owner="O'Brien" містить апостроф. instruction використовує одинарні лапки навколо тексту з подвійними. Поєднання owner, " | " та instruction повертає O'Brien | say "go". Екранувальні зворотні риски в скрипті не потрібні.
3. Логічні значення як числа
# enabled=TRUE зберігає 1, stopped=FALSE — 0. Множення й додавання дають 1*10+0=10. Main повертає число 10; це результат обчислення, а не канонічне логічне TRUE.
Option Explicit On
SUB Main()
VAR enabled = TRUE
VAR stopped = FALSE
RETURN enabled * 10 + stopped
END SUB
Пояснення параметрів і виконання:
enabled=TRUE зберігає 1, stopped=FALSE — 0. Множення й додавання дають 1*10+0=10. Main повертає число 10; це результат обчислення, а не канонічне логічне TRUE.