หาก Luau พยายามใช้ค่าหรือ ตัวแปร ในการดำเนินการ เช่น การคำนวณ หรือ การรวมกัน หรือ การกำหนดค่า พิมพ์Luau จะแปลง ( บังคับ ) ค่าให้เปลี่ยนประเภทข้อมูลการบังคับใช้เกิดขึ้นในเวลาทำงานสำหรับการดำเนินการนั้นและไม่เปลี่ยนค่าของตัวแปร
อาริทเมติก
Luau บังคับให้สตริงเป็นตัวเลขในการดำเนินการทางคณิตศาสตร์ ในการคำนวณพฤติกรรมนี้ถูกสร้างขึ้นใน Luauหากประเภทไม่สอดคล้องกับการคำนวณ Luau จะโยนข้อผิดพลาดและไม่ดำเนินการส่วนที่เหลือของสคริปต์ตัวอย่างเช่น คุณไม่สามารถเพิ่มสตริงไปยังตัวเลขได้หากสตริงไม่เป็นตัวเลข
print(100 + "7") -- 107print(100 - "7") -- 93print("1000" + 234) -- 1234print("1000" - 234) -- 766print("hello" + 234) -- error: attempt to perform arithmetic (add) string and number
การรวมกัน
ในการรวม Luau บังคับให้ตัวเลขเป็นสตริง เพื่อแปลงตัวเลขเป็นสตริงโดยไม่ใช้การบังคับให้ใช้ฟังก์ชัน string.format()
print("Pi is " .. math.pi) --> Pi คือ 3.1415926535898print("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 = 816part1.Parent = Workspaceprint(part1.Material) -- Enum.Material.Concretelocal part2 = Instance.new("Part")part2.Material = "Concrete"part2.Parent = Workspaceprint(part2.Material) -- Enum.Material.Concrete-- นี่คือการปฏิบัติที่ดีที่สุดเพราะเป็นที่ชัดเจนมากที่สุดlocal part3 = Instance.new("Part")part3.Material = Enum.Material.Concretepart3.Parent = Workspaceprint(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:00Lighting.TimeOfDay = 5print(Lighting.TimeOfDay) -- 05:00:00