ประเภทการบังคับใช้

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

หาก Luau พยายามใช้ค่าหรือ ตัวแปร ในการดำเนินการ เช่น การคำนวณ หรือ การรวมกัน หรือ การกำหนดค่า พิมพ์Luau จะแปลง ( บังคับ ) ค่าให้เปลี่ยนประเภทข้อมูลการบังคับใช้เกิดขึ้นในเวลาทำงานสำหรับการดำเนินการนั้นและไม่เปลี่ยนค่าของตัวแปร

อาริทเมติก

Luau บังคับให้สตริงเป็นตัวเลขในการดำเนินการทางคณิตศาสตร์ ในการคำนวณพฤติกรรมนี้ถูกสร้างขึ้นใน Luauหากประเภทไม่สอดคล้องกับการคำนวณ Luau จะโยนข้อผิดพลาดและไม่ดำเนินการส่วนที่เหลือของสคริปต์ตัวอย่างเช่น คุณไม่สามารถเพิ่มสตริงไปยังตัวเลขได้หากสตริงไม่เป็นตัวเลข


print(100 + "7") -- 107
print(100 - "7") -- 93
print("1000" + 234) -- 1234
print("1000" - 234) -- 766
print("hello" + 234) -- error: attempt to perform arithmetic (add) string and number

การรวมกัน

ในการรวม Luau บังคับให้ตัวเลขเป็นสตริง เพื่อแปลงตัวเลขเป็นสตริงโดยไม่ใช้การบังคับให้ใช้ฟังก์ชัน string.format()


print("Pi is " .. math.pi) --> Pi คือ 3.1415926535898
print("Pi is " .. 3.1415927) --> Pi คือ 3.1415927
-- รอบไปยังสามตำแหน่งทศนิยม
print("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142

การจัดสรร

บางคุณสมบัติคาดว่าจะมีประเภทข้อมูลบางอย่าง เช่น Enum สตริงแต่คุณสามารถกำหนดค่าของประเภทอื่นให้กับมันและ Luau จะแปลงค่าเป็นประเภทที่คุณต้องการ

เอนุม

Luau บังคับตัวเลขและสตริงของค่า enum เป็นชื่อ enum เต็มตัวอย่างเช่น คุณสามารถตั้งชื่อค่าของคุณภายใต้คุณสมบัติ Part.Material โดยใช้ตัวเลข สตริง หรือชื่อเต็มของ enum และฟังก์ชัน print() จะพิมพ์ชื่อ enum เต็มเสมอการปฏิบัติที่ดีที่สุดคือต้องชัดเจนและใช้ชื่อ enum เต็มสำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Enums ดู Enums


local Workspace = game:GetService("Workspace")
local part1 = Instance.new("Part")
part1.Material = 816
part1.Parent = Workspace
print(part1.Material) -- Enum.Material.Concrete
local part2 = Instance.new("Part")
part2.Material = "Concrete"
part2.Parent = Workspace
print(part2.Material) -- Enum.Material.Concrete
-- นี่คือการปฏิบัติที่ดีที่สุดเพราะเป็นที่ชัดเจนมากที่สุด
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(part3.Material) -- Enum.Material.Concrete

เวลาของวัน

คุณสมบัติ Lighting.TimeOfDay ซึ่งกำหนดว่าเป็นกลางคืน กลางวัน หรือเวลาอื่น ๆ พิมพ์DateTime เป็นข้อความหากคุณกำหนดหมายเลขให้กับ Lighting.TimeOfDay Luau จะแปลงเป็นการแสดงสตริงของ DateTime


local Lighting = game:GetService("Lighting")
Lighting.TimeOfDay = "05:00:00"
print(Lighting.TimeOfDay) -- 05:00:00
Lighting.TimeOfDay = 5
print(Lighting.TimeOfDay) -- 05:00:00