API Basic OptionExplicit uk - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Option Explicit
ClassicUO • Basic
Вимагає оголошення змінних до запуску скрипту. Це директива файлу мови Basic цього рушія, а не команда UO чи виклик функції.
Точний синтаксис
Option Explicit
Option Explicit On
Option Explicit Off
Параметри
On / Off— On вмикає сувору перевірку оголошень; Off вимикає її. Без слова після Explicit мається на увазі On. За відсутності директиви зберігається попередній несуворий режим. Дужки й лапки не потрібні.
Повертає
Значення немає. Директива не є виразом і не повертає TRUE/FALSE, число чи ID. RETURN у прикладах належить Main або Enough, а не Option Explicit.
Поведінка
- Напишіть директиву один раз, до змінних, констант і процедур. Перед нею дозволено порожні рядки та коментарі. Повторна або пізня директива спричиняє SC013, зокрема спроба пізніше перемкнути на Off.
- У режимі On читання чи присвоєння неоголошеної змінної спричиняє SC006 із місцем у коді. Також перевіряються імена масивів, лічильники FOR та об’єкти перед викликом методу. Оголошуйте через VAR/DIM/CONST; параметри й іменована змінна CATCH теж оголошують імена. FOR VAR оголошує лічильник.
- Локальну змінну оголошуйте до використання. Локальна змінна однієї процедури не оголошує ім’я в іншій. Глобальні оголошення доступні процедурам. Це перевірка імен, а не доказ ініціалізації значення в усіх гілках.
- Парсер читає весь файл; аналізатор зіставляє імена з оголошеннями; помилка суворої перевірки блокує виконання до першої команди. Повторне завантаження застосовує режим нового файлу незалежно від попереднього скрипту. У режимі Off можливі попередження, а читання ще не створеного значення може спричинити помилку виконання.
- Сама директива не виконує ігрових дій і не надсилає пакетів. Вона не означає повної сумісності з VB.NET і не перевіряє існування ігрової цілі.
Приклади
1. Оголошення до присвоєння
# On вмикає перевірку. DIM оголошує count типу Integer; присвоєння 5 допустиме. Main повертає 5. Заміна count на неоголошене coutn заблокує запуск із SC006.
Option Explicit On
SUB Main()
DIM count AS Integer
count = 5
RETURN count
END SUB
Пояснення параметрів і виконання:
On вмикає перевірку. DIM оголошує count типу Integer; присвоєння 5 допустиме. Main повертає 5. Заміна count на неоголошене coutn заблокує запуск із SC006.
2. Параметр і глобальна константа
# Директива без режиму означає On. minimum — глобальна константа 3. amount — оголошений параметр у Enough і окрема локальна змінна у Main. Enough порівнює 5 >= 3 і повертає TRUE, чисельно 1.
Option Explicit
CONST minimum = 3
FUNCTION Enough(amount)
RETURN amount >= minimum
END FUNCTION
SUB Main()
VAR amount = 5
RETURN Enough(amount)
END SUB
Пояснення параметрів і виконання:
Директива без режиму означає On. minimum — глобальна константа 3. amount — оголошений параметр у Enough і окрема локальна змінна у Main. Enough порівнює 5 >= 3 і повертає TRUE, чисельно 1.
3. Запуск старого скрипту
# Off дозволяє створити legacyCounter присвоєнням без DIM. Main повертає 7. У цьому прикладі сумісності може залишитися попередження; для суворої перевірки оголосіть змінну й увімкніть On.
Option Explicit Off
SUB Main()
legacyCounter = 7
RETURN legacyCounter
END SUB
Пояснення параметрів і виконання:
Off дозволяє створити legacyCounter присвоєнням без DIM. Main повертає 7. У цьому прикладі сумісності може залишитися попередження; для суворої перевірки оголосіть змінну й увімкніть On.