ModuleScript
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un ModuleScript est un type de conteneur de source Lua qui s'exécute une fois et doit retourner exactement une valeur. Cette valeur est ensuite renvoyée par un appel à require donné auModuleScript comme seul argument. LesModuleScripts s'exécutent une fois et ne s'exécutent qu'une fois par environnement Lua et retournent la même valeur pour les appels suivants à require .
ModuleScripts sont des objets essentiels pour adhérer au principe de ne pas se répéter (DRY). Lorsque vous écrivez une fonction, écrivez-la une seule fois et utilisez-la partout. Avoir plusieurs copies d'une fonction est désastreux lorsque vous devez modifier ce comportement. Donc, vous devriez définir des fonctions ou des groupes de fonctions dansModuleScripts et avoir votre code et LocalScripts appeler require sur
Il est important de savoir que les valeurs de retour des scripts du module sont indépendantes en matière de scripts locaux et de scripts, et d'autres environnements comme la barre de commande. L'utilisation de require sur un script du module dans un script local exécutera le code sur le client, même si un script l'a déjà fait dans le serveur.
Remarquez que la première appel à require sur unModuleScript ne se déclenchera pas (halt) à moins que leModuleScript ne génère une valeur. Une
Si un ModuleScript est téléchargé sur Roblox et que le module de racine a le nom défini comme MainModule, il peut être téléchargé comme un modèle et requis en utilisant require() avec l'ID de ressource du modèlisation. Puis il peut être chargé dans votre expérience, bien que
Échantillons de code
-- 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()
Résumé
Propriétés
Le code à exécuter.
Propriétés
Source
Le code à exécuter.
Si vous souhaitez lire ou modifier un script que l'utilisateur a ouvert, envisagez d'utiliser le ScriptEditorService pour interagir avec le scripteur au lieu de cela.