ModuleScript
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
ModuleScript to typ kontenera źródłowego Lua, który zostanie wykonany raz i musi zwrócić dokładnie jedną wartość. Ta wartość zostanie następnie zwrócona przez wezwanie do require , zależnie od środowiska Lua.ModuleScripty zostaną wykonane tylko raz na każde środowisko Lua i zwrócą dokładnie tę samą wartość dla następnych wezwania do require.
ModuleScripts są niezbędnymi obiektami do przestrzegania zasady nie powtarzania się (DRY). Gdy piszesz funkcję, pisz ją tylko raz i używaj jej wszędzie. Posiadanie wielu kopii funkcji jest katastrofalne, gdy musisz zmienić zachowanie. Więc, powinieneś zdefiniować funkcje lub grupy funkcji w ModuleScripts i mieć swoje fun
Ważne jest, aby wiedzieć, że wartości zwracane z ModuleScripts są niezależne wobec lokalnych skryptów i skryptów, a inne środowiska, takie jak Roblox StudioKomend. Używanie require naModuleScript w lokalnym środowisku z Konsoli Komend będzie
Uwaga, że pierwszy call do require naModuleScript nie zwróci wyniku (halt), chyba że ModułScript zwróci wynik (
Jeśli ModuleScript zostanie przesłany do Roblox i moduł korzeni ma ustawioną nazwę MainModule, można go załadować jako modelu i wymagany używając require() z ID zasobu modułu. Następnie można go
Przykłady kodu
-- 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()
Podsumowanie
Właściwości
Kod do wykonania.
Właściwości
Source
Kod do wykonania.
Jeśli chcesz przeczytać lub zmienić otwarty przez użytkownika skrypt, rozważ użycie ScriptEditorService aby wejść w interakcję z Edytorem Skryptów zamiast tego.