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.


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

Basic