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

Module / End Module

ClassicUO • Basic

Module agrupa funciones, procedimientos, VAR/DIM y CONST bajo un nombre. Desde fuera se usan Tools.Sum o Counter.count; dentro del módulo actual se admiten nombres cortos.

Sintaxis exacta

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

Parámetros

  • moduleName — moduleName: identificador simple sin distinguir mayúsculas, por ejemplo Tools. UO está reservado. Se rechazan nombres de módulo duplicados y módulos anidados.
  • members — members: SUB/FUNCTION, VAR/DIM escalares, CONST, Include y una directiva Option Explicit válida. Un campo puede contener un array u objeto. DIM[...] directamente en el módulo no está disponible; cree el array con una función y guárdelo en VAR.
  • member / arguments — member / arguments: nombre del miembro y argumentos de función. Tools.Sum(2, 3) pasa left=2 y right=3. El campo Counter.count se consulta sin paréntesis.

Devuelve

Module no devuelve valor ni se llama como Module(...). Tools.Sum(...) devuelve el RETURN de esa función; un campo devuelve su valor almacenado. Las comparaciones devuelven Integer 1/0, correspondientes a TRUE/FALSE en condiciones y comparaciones. Un número, ID o cantidad cualquiera no es automáticamente un resultado booleano.

Comportamiento

  • Declare Module al nivel del archivo y termine con End Module. Include puede cargar un módulo o sus miembros; los errores conservan archivo y línea originales. Option Explicit pertenece al archivo físico.
  • La preparación recopila nombres completos, vincula referencias cortas al módulo actual y comprueba el acceso antes de ejecutar. Un parámetro, VAR, CONST o DIM local explícito oculta un campo del mismo nombre. En otro caso se busca primero el campo del módulo y después la variable global tradicional.
  • Los campos se inicializan en orden de declaración al comenzar cada ejecución independiente. Las llamadas anidadas de esa ejecución comparten cambios. Una ejecución nueva empieza de nuevo; los scripts concurrentes no comparten el estado del módulo. No se guarda en disco.
  • Las funciones/procedimientos son Public por defecto; los campos/constantes son Private. Private requiere Module. Consulte Public / Private.
  • El IDE muestra nombres completos. Las funciones públicas sin argumentos obligatorios se pueden iniciar desde la lista; los auxiliares privados siguen siendo internos. Sugerencias, navegación e inspección respetan el módulo actual.

Ejemplos

1. Mismo nombre en módulos distintos

# Tools.Sum suma left=2 y right=3 y devuelve 5. Other.Sum los multiplica y devuelve 6. Los nombres completos distinguen las funciones; Main devuelve 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

Explicación de los parámetros y la ejecución:

Tools.Sum suma left=2 y right=3 y devuelve 5. Other.Sum los multiplica y devuelve 6. Los nombres completos distinguen las funciones; Main devuelve Integer 11.

2. Campo compartido en una ejecución

# count comienza en 0. Cada Increment suma 1 al mismo campo; dos llamadas dejan before=2. Read observa Counter.count=5. Main devuelve 2*10+5, Integer 25. Una nueva ejecución vuelve a empezar en 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

Explicación de los parámetros y la ejecución:

count comienza en 0. Cada Increment suma 1 al mismo campo; dos llamadas dejan before=2. Read observa Counter.count=5. Main devuelve 2*10+5, Integer 25. Una nueva ejecución vuelve a empezar en 0.

3. Resultado booleano

# maximum=4 es accesible dentro de Limits. Allowed(3) devuelve Integer 1 y Allowed(7) Integer 0. accepted=TRUE y rejected=FALSE comprueban esos valores. Main devuelve Integer 10 al cumplirse ambos.
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

Explicación de los parámetros y la ejecución:

maximum=4 es accesible dentro de Limits. Allowed(3) devuelve Integer 1 y Allowed(7) Integer 0. accepted=TRUE y rejected=FALSE comprueban esos valores. Main devuelve Integer 10 al cumplirse ambos.


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

Basic