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

*เนื้อหานี้แปลโดยใช้ 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 is 3.1415926535898
print("Pi is " .. 3.1415927) --> Pi is 3.1415927
-- ปรับให้เป็นทศนิยม 3 ตำแหน่ง
print("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142

การกำหนดค่า

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

Enums

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
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ