ModuleScript
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Un ModuleScript es un tipo de contenedor de Lua que se ejecuta una vez y debe返回一个值。 Este valor se luego devuelve por una llamada a require dado queModuleScripts se ejecuta una vez y solo una vez por ambiente Lua y devuelve el valor exacto para las siguientes llamadas a require .
ModuleScripts son objetos esenciales para adherirse al principio de no repetición de sí mismo (DRY). Cuando escribes una función, escríbela solo una vez y úsala en todas partes. Tener múltiples copias de una función es desastroso cuando necesitas cambiar ese comportamiento. Así que, deberías definir funciones o grupos de funciones en ModuleScripts y tener que la función de require en tus ModuleScripts.
Es importante saber que los valores de返o de ModuleScripts son independientes con respecto a LocalScripts y Scripts, y otros ambientes como la Barra de Comandos. El uso de require en unModuleScript en una Barra de Comandos hará que se ejecute el código en el cliente, incluso si un Script lo hace ya en el servidor
Tenga en cuenta que la primera llamada a require en unModuleScript no se generará (halt) a menos que elModuleScript genere un valor. Se genera
Si un ModuleScript se carga en Roblox y el módulo de raíz tiene el nombre establecido como MainModule , se puede cargar como modelo y se requiere con el ID de activo del aplicación de modelado. Luego se puede cargar en tu experiencia, aunque esta lógica solo funciona en el servidor y fallará
Muestras de código
-- Tables store multiple values in one variable
local MyFunctions = {}
-- Add a few functions to the table
function MyFunctions.foo()
print("Foo!")
end
function MyFunctions.bar()
print("Bar!")
end
-- ModuleScripts must return exactly one value
return MyFunctions
-- The require function is provided a ModuleScript, then runs
-- the code, waiting until it returns a singular value.
local MyFunctions = require(script.Parent.MyFunctions)
-- These are some dummy functions defined in another code sample
MyFunctions.foo()
MyFunctions.bar()
Resumen
Propiedades
El código que se ejecutará.
Propiedades
Source
El código que se ejecutará.
Si desea leer o modificar un script que el usuario ha abierto, considere usar el ScriptEditorService para interactuar con el Editor de Script en su lugar.