API Basic Variables uk - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

VAR / DIM

ClassicUO • Basic

VAR і скалярний DIM оголошують іменоване значення. Присвоєння обчислює вираз і зберігає результат. Оголошення всередині процедури локальне для її виклику; поза процедурами — глобальне для скрипту.

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

VAR name [AS type] [= expression] [, name ...]
DIM name [AS type] [= expression] [, name ...]
name = expression
LET name = expression
SET name = expression

Параметри

  • name — Ім’я змінної без лапок. Використовуйте латинські літери, цифри та підкреслення, починаючи з літери чи підкреслення. Пишіть ім’я однаково; ключові слова мови використовувати не можна.
  • type — Необов’язкове AS. Integer/Long/Short/Byte використовують знакове 32-бітне перетворення цього рушія; Double/Single/Decimal — число подвійної точності; String — текст; Boolean/Bool — логічне значення; Variant/Object зберігають вид значення. Ці псевдоніми не задають окремі діапазони byte/short/long із VB.NET.
  • expression — Необов’язковий ініціалізатор у VAR/DIM; обов’язкова права частина присвоєння. Обчислюється під час виконання рядка. Скаляр AS String без ініціалізатора починається з порожнього тексту; типізовані числа та Boolean за замовчуванням дорівнюють нулю. Без ініціалізатора нетипізований VAR і VAR AS Variant/Object містять Unit (відсутність значення), а скалярний DIM задає 0. Нетипізована змінна згодом може зберігати інший вид значення.

Повертає

Значення немає. VAR, DIM і присвоєння не повертають результат. Читання імені дає збережене значення. RETURN у кожному прикладі повертає це значення з Main; це не результат DIM.

Поведінка

  • Квадратні дужки в наведеному синтаксисі позначають необов’язкову частину; навколо AS та ініціалізатора їх писати не слід. DIM масиву має іншу форму оголошення.
  • LET і SET у цьому рушії — сумісні форми звичайного присвоєння. За Option Explicit On вони не оголошують ім’я. Тип AS застосовується також до подальших присвоєнь; неправильне перетворення чи непідтримуваний тип спричиняють помилку виконання.
  • Локальні імена належать виклику процедури. Оголошення всередині IF не створює окремої області блоку. Якщо гілка не виконувалася, значення під час виконання не створене. Якщо воно потрібне після розгалуження, оголосіть змінну до нього.
  • Сумісність Injection: викликана процедура отримує поточні скалярні глобальні значення викликача та їхні типи AS. Повторне присвоєння скаляра в дочірній процедурі не змінює значення у викликача. Для такої зміни поверніть нове значення або передайте аргумент BYREF. Це не глибоке клонування значень Array/Object. Новий запуск основної процедури знову ініціалізує глобальні змінні; локальне оголошення перекриває ім’я у своєму кадрі, зберігаючи глобальне оголошення.
  • Рушій обчислює ініціалізатор, створює змінну в поточній області та застосовує перетворення типу. Наступне присвоєння спочатку обчислює праву частину. Приклади обчислюють локально; змінні автоматично не зберігаються у профіль чи JSON-файл.

Приклади

1. Зміна цілого числа

# count починається з 0, отримує 5, потім LET додає 2. Main повертає Integer 7. Перший DIM оголошує ім’я; подальші присвоєння змінюють значення.
Option Explicit On
SUB Main()
    DIM count AS Integer
    count = 5
    LET count = count + 2
    RETURN count
END SUB

Пояснення параметрів і виконання:

count починається з 0, отримує 5, потім LET додає 2. Main повертає Integer 7. Перший DIM оголошує ім’я; подальші присвоєння змінюють значення.

2. Текст і логічний прапорець

# label починається з порожньої String. SET записує "ore". enabled має тип Boolean і значення TRUE; гілка IF повертає String "ore". TRUE пишеться без лапок і означає логічну 1.
Option Explicit On
SUB Main()
    DIM label AS String
    VAR enabled AS Boolean = TRUE
    SET label = "ore"
    IF enabled = TRUE THEN
        RETURN label
    END IF
    RETURN "disabled"
END SUB

Пояснення параметрів і виконання:

label починається з порожньої String. SET записує "ore". enabled має тип Boolean і значення TRUE; гілка IF повертає String "ore". TRUE пишеться без лапок і означає логічну 1.

3. Глобальне значення й локальний розрахунок

# baseAmount — глобальне значення 4. extra — локальна змінна Calculate зі значенням 3. Calculate повертає 7; Main зберігає його у власній локальній result і повертає 7. extra не є локальною змінною Main.
Option Explicit On
VAR baseAmount AS Integer = 4
FUNCTION Calculate()
    VAR extra = 3
    RETURN baseAmount + extra
END FUNCTION
SUB Main()
    VAR result = Calculate()
    RETURN result
END SUB

Пояснення параметрів і виконання:

baseAmount — глобальне значення 4. extra — локальна змінна Calculate зі значенням 3. Calculate повертає 7; Main зберігає його у власній локальній result і повертає 7. extra не є локальною змінною Main.


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

Basic