ModuleScript
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
A ModuleScript adalah jenis skrip yang mengembalikan persis satu nilai dengan panggilan ke require() . ModuleScripts jalankan sekali dan hanya sekali per lingkungan Luau dan kembalikan nilai yang sama persis untuk panggilan berikutnya ke require() .
ModuleScripts adalah objek penting untuk mematuhi prinsip "Jangan Ulangi Diri Anda" (DRY), memungkinkan Anda menulis fungsi hanya sekali dan menggunakannya di mana-mana.Memiliki beberapa salinan fungsi adalah bermasalah ketika Anda perlu mengubah perilaku mereka, jadi Anda harus mendefinisikan fungsi atau kelompok fungsi di dan memiliki panggilan dan pada modul tersebut.
Penting untuk mengetahui bahwa nilai pengembalian dari ModuleScripts independen terhadap Scripts dan LocalScripts , dan lingkungan lain seperti Bilah Perintah .Menggunakan require() pada ModuleScript di dalam LocalScript akan menjalankan kode di klien, bahkan jika Script melakukannya sudah ada di server.Oleh karena itu, berhati-hatilah jika Anda menggunakan ModuleScript pada klien dan server pada saat yang sama, atau mendepurinya dalam Studio.
Perhatikan bahwa panggilan pertama ke require() tidak akan menghasilkan (berhenti) kecuali jika ModuleScript menghasilkan (panggilan task.wait() misalnya), dalam hal ini thread saat ini yang memanggil require() akan menghasilkan sampai ModuleScript kembali nilai.Jika sebuah ModuleScript mencoba untuk require() lain ModuleScript yang pada gilirannya mencoba untuk require() itu, thread akan menggantung dan tidak pernah berhenti (panggilan siklik require() tidak menghasilkan kesalahan).Perhatikan dependensi modul Anda di proyek besar!
Jika ModuleScript diunggah ke Roblox dan modul akar memiliki nama diatur ke MainModule , itu dapat diunggah sebagai model dan diperlukan menggunakan require() dengan ID aset model.Kemudian dapat dimuat ke dalam pengalaman Anda, meskipun logika ini hanya berfungsi di server dan akan gagal pada klien.Jika pengguna lain ingin menggunakan modul, itu harus publik.
Contoh Kode
Sampel kode dimulai dengan membuat variabel lokal yang menyimpan tabel kosong.Kemudian mengisi tabel dengan dua fungsi penyimpan sementara, dan akhirnya mengembalikan tabel.Menggunakan kode ini di ModuleScript akan membuat tabel my_functions tersedia untuk Skrip, Skrip Lokal atau Modul Script lainnya.
-- Tabel menyimpan beberapa nilai dalam satu variabel
local MyFunctions = {}
-- Tambahkan beberapa fungsi ke tabel
function MyFunctions.foo()
print("Foo!")
end
function MyFunctions.bar()
print("Bar!")
end
-- ModuleScript harus kembali persis satu nilai
return MyFunctions
This code sample shows how to use the require function on a ModuleScript, then use the value that it returned. See the "Simple ModuleScript Example" for the code to go with this sample.
-- 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()
Rangkuman
Properti
Kode yang akan dieksekusi.
Properti
Source
Kode yang akan dieksekusi.
Jika Anda ingin membaca atau memodifikasi skrip yang dibuka oleh pengguna, pertimbangkan untuk menggunakan ScriptEditorService untuk berinteraksi dengan Editor Skrip sebagai gantinya.