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

Module / End Module

ClassicUO • Basic

Module об’єднує функції, процедури, VAR/DIM і CONST під одним ім’ям. Ззовні пишіть Tools.Sum або Counter.count; усередині модуля дозволені короткі імена його учасників.

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

Module moduleName
    members
End Module
moduleName.member(arguments)
moduleName.field

Параметри

  • moduleName — moduleName: простий ідентифікатор без урахування регістру, наприклад Tools. UO зарезервовано. Повторні імена модулів і вкладені Module заборонені.
  • members — members: SUB/FUNCTION, скалярні VAR/DIM, CONST, Include і коректна директива Option Explicit. Поле може містити масив чи об’єкт. DIM[...] безпосередньо в модулі не підтримується; створіть масив функцією та збережіть у VAR.
  • member / arguments — member / arguments: ім’я учасника й аргументи функції. Tools.Sum(2, 3) передає left=2 і right=3. Поле Counter.count читається без дужок.

Повертає

Module не повертає значення й не викликається як Module(...). Tools.Sum(...) повертає значення RETURN функції; поле — збережене значення. Порівняння повертає Integer 1/0, що відповідає TRUE/FALSE в умовах і порівняннях. Довільне число, ID або кількість не є автоматично булевим результатом.

Поведінка

  • Оголошуйте Module на рівні файлу, завершуйте End Module. Include може підключати весь модуль або його учасників; помилки зберігають файл і рядок бібліотеки. Option Explicit належить фізичному файлу.
  • Підготовка збирає повні імена, зв’язує короткі посилання з поточним модулем і перевіряє доступ до запуску. Явний локальний параметр, VAR, CONST або DIM перекриває однойменне поле. Інакше шукається поле модуля, потім звичайна глобальна змінна.
  • Поля ініціалізуються в порядку оголошень на початку окремого запуску. Вкладені виклики цього запуску бачать спільні зміни полів. Новий запуск починається заново; паралельні скрипти не ділять стан модуля. На диск налаштування не зберігаються.
  • Функції/процедури модуля типово Public; поля/константи типово Private. Private дозволено тільки в Module. Див. Public / Private.
  • IDE показує повні імена процедур. Публічну процедуру без обов’язкових аргументів можна запускати зі списку; приватні помічники залишаються внутрішніми. Підказки, навігація та перегляд змінних ураховують модуль.

Приклади

1. Однакові імена в різних модулях

# Tools.Sum додає left=2 і right=3 та повертає 5. Other.Sum множить їх і повертає 6. Повні імена розрізняють функції; Main повертає Integer 11.
Option Explicit On
Module Tools
    Public Function Sum(ByVal left, ByVal right)
        Return left + right
    End Function
End Module
Module Other
    Public Function Sum(ByVal left, ByVal right)
        Return left * right
    End Function
End Module
Sub Main()
    Return Tools.Sum(2, 3) + Other.Sum(2, 3)
End Sub

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

Tools.Sum додає left=2 і right=3 та повертає 5. Other.Sum множить їх і повертає 6. Повні імена розрізняють функції; Main повертає Integer 11.

2. Спільне поле запуску

# count починається з 0. Кожен Increment додає 1 до того самого поля; після двох викликів before=2. Counter.count=5 бачить Read. Main повертає 2*10+5, Integer 25. Новий запуск знову починається з 0.
Option Explicit On
Module Counter
    Public Var count As Integer = 0
    Public Sub Increment()
        count += 1
    End Sub
    Public Function Read()
        Return count
    End Function
End Module
Sub Main()
    Counter.Increment()
    Counter.Increment()
    Var before = Counter.Read()
    Counter.count = 5
    Return before * 10 + Counter.Read()
End Sub

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

count починається з 0. Кожен Increment додає 1 до того самого поля; після двох викликів before=2. Counter.count=5 бачить Read. Main повертає 2*10+5, Integer 25. Новий запуск знову починається з 0.

3. Булевий результат

# maximum=4 доступний усередині Limits. Allowed(3) повертає Integer 1, Allowed(7) — Integer 0. accepted=TRUE і rejected=FALSE перевіряють ці результати. За успіху Main повертає Integer 10.
Option Explicit On
Module Limits
    Private Const maximum = 4
    Public Function Allowed(ByVal amount)
        Return amount <= maximum
    End Function
End Module
Sub Main()
    Var accepted = Limits.Allowed(3)
    Var rejected = Limits.Allowed(7)
    If accepted = TRUE AndAlso rejected = FALSE Then
        Return 10
    End If
    Return 0
End Sub

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

maximum=4 доступний усередині Limits. Allowed(3) повертає Integer 1, Allowed(7) — Integer 0. accepted=TRUE і rejected=FALSE перевіряють ці результати. За успіху Main повертає Integer 10.


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

Basic