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 สินทรัพย์ของโมเดลจากนั้นสามารถโหลดลงในประสบการณ์ของคุณได้ แม้ว่าโลจิกจะทำงานได้เฉพาะในเซิร์ฟเวอร์และจะเกิดข้อผิดพลาดในไคลเอนต์หากผู้ใช้รายอื่นต้องการใช้โมดูล จะต้องเป็นสาธารณะ

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

The code sample starts by creating a local variable holding an empty table. It then fills the table with two placeholder functions, and then finally returns the table. Using this code in a ModuleScript would make the my_functions table (and thus any functions, tables or other values within it) available to any Script, LocalScript or other ModuleScript.

Simple ModuleScript Example

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

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 เพื่อโต้ตอบกับเครื่องมือแก้ไขสคริปต์แทน

วิธีการ

อีเวนต์