ModuleScript

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

A ModuleScript เป็นประเภทสคริปต์ที่ส่งคืนค่าเดียวโดยการเรียก Global.LuaGlobals.require()``Class.ModuleScript|ModuleScripts ทำงานเพียงครั้งเดียวต่อสภาพแวดล้อม Luau และส่งค่าเดียวกันสำหรับการโทรต่อไปที่ require()

ModuleScripts เป็นวัตถุที่จำเป็นสำหรับการปฏิบัติตามหลักการ "อย่าทำซ้ำตัวเอง" (DRY) ทำให้คุณสามารถเขียนฟังก์ชันเพียงครั้งเดียวและใช้งานได้ทุกที่การมีสำเนาหลายตัวของฟังก์ชันเป็นปัญหาเมื่อต้องเปลี่ยนพฤติกรรมของพวกเขาดังนั้นคุณควรกำหนดฟังก์ชันหรือกลุ่มฟังก์ชันใน และมีการเรียก และ ในโมดูลเหล่านั้น

เป็นสิ่งสำคัญที่ต้องรู้ว่าค่าการ返回จาก ModuleScripts จะเป็นอิสระต่อ Scripts และ LocalScripts และสภาพแวดล้อมอื่นๆ เช่น แถบคำสั่งการใช้ require() บน ModuleScript ใน LocalScript จะรันโค้ดบนไคลเอนต์แม้ว่า Script จะทำเช่นนั้นแล้วบนเซิร์ฟเวอร์ดังนั้นโปรดระวังหากคุณกำลังใช้ ModuleScript บนไคลเอนต์และเซิร์ฟเวอร์ในเวลาเดียวกันหรือกำลังแก้ไขภายใน Studio

โปรดทราบว่าการโทรครั้งแรกไปที่ require() จะไม่ให้ผล (หยุด) เว้นแต่ว่า ModuleScript จะให้ผล (เรียก task.wait() ตัวอย่างเช่น) ในกรณีนี้กระทู้ปัจจุบันที่เรียก require() จะให้ผลจนกว่า ModuleScript จะกลับมาเป็นค่าหาก กําลังพยายาม อีก ที่ในทางกลับกันพยายาม มันจะ แขวนและไม่หยุดเลย (การโทรจังหวะทางไซเคิลไม่สร้างข้อผิดพลาด)ตรวจสอบการพึ่งพาโมดูลของคุณในโครงการขนาดใหญ่!

หาก ModuleScript ถูกอัปโหลดไปยัง Roblox และโมดูลรากมีชื่อตั้งค่าเป็น MainModule ก็สามารถอัปโหลดเป็นโมเดลและต้องใช้ require() ด้วย ID สินทรัพย์ของโมเดลจากนั้นสามารถโหลดลงในประสบการณ์ของคุณได้ แม้ว่าโลจิกจะทำงานได้เฉพาะในเซิร์ฟเวอร์และจะเกิดข้อผิดพลาดในไคลเอนต์หากผู้ใช้รายอื่นต้องการใช้โมดูล จะต้องเป็นสาธารณะ

ตัวอย่างโค้ด

ตัวอย่างโค้ดเริ่มต้นด้วยการสร้างตัวแปรท้องถิ่นที่มีตารางว่างเปล่าจากนั้นก็เติมตารางด้วยฟังก์ชันชั่วคราวสองฟังก์ชันแล้วสุดท้ายก็ส่งคืนตารางการใช้รหัสนี้ใน ModuleScript จะทำให้ตาราง my_functions ที่มีอยู่ (และดังนั้นฟังก์ชัน ตาราง หรือค่าอื่นๆ ภายในนั้น) สามารถใช้งานได้กับสคริปต์ สคริปต์ท้องถิ่น หรือสคริปต์โมดูลอื่นๆ

ตัวอย่างโมดูลสคริปต์ง่าย

-- ตารางเก็บหลายค่าในตัวแปรเดียว
local MyFunctions = {}
-- เพิ่มฟังก์ชันไม่กี่ไปยังตาราง
function MyFunctions.foo()
print("Foo!")
end
function MyFunctions.bar()
print("Bar!")
end
-- ModuleScripts ต้องส่งคืนค่าเดียวอย่างแน่นอน
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.

Simple ModuleScript Usage

-- 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()

สรุป

คุณสมบัติ

  • อ่านพร้อมๆ กัน
    การรักษาความปลอดภัยของปลั๊กอิน
    การรักษาความปลอดภัยของ OpenCloud

    รหัสที่จะถูกดำเนินการ

คุณสมบัติ

Source

อ่านพร้อมๆ กัน
การรักษาความปลอดภัยของปลั๊กอิน
การรักษาความปลอดภัยของ OpenCloud

รหัสที่จะถูกดำเนินการ

หากคุณต้องการอ่านหรือแก้ไขสคริปต์ที่ผู้ใช้เปิดอยู่ พิจารณาใช้ ScriptEditorService เพื่อโต้ตอบกับเครื่องมือแก้ไขสคริปต์แทน

วิธีการ

อีเวนต์