Ép kiểu

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Nếu Luau cố gắng sử dụng một giá trị hoặc biến trong một phép toán, chẳng hạn như toán học, nối chuỗi, hoặc gán, nhưng giá trị không phải là kiểu mà phép toán mong đợi, thì Luau sẽ chuyển đổi (ép kiểu) giá trị đó để thay đổi kiểu dữ liệu của nó. Việc ép kiểu xảy ra tại thời điểm thực thi cho phép toán đó và không thay đổi giá trị của biến.

Toán học

Luau ép các chuỗi thành số trong các phép toán toán học. Hành vi này được tích hợp sẵn trong Luau. Nếu các kiểu không tương thích cho việc tính toán, Luau sẽ ném ra một lỗi và không thực thi phần còn lại của kịch bản. Ví dụ, bạn không thể cộng một chuỗi với một số nếu chuỗi đó không đại diện cho một số.


print(100 + "7") -- 107
print(100 - "7") -- 93
print("1000" + 234) -- 1234
print("1000" - 234) -- 766
print("hello" + 234) -- lỗi: cố gắng thực hiện phép toán (cộng) chuỗi và số

Nối chuỗi

Trong nối chuỗi, Luau sẽ ép các số thành chuỗi. Để chuyển đổi một số thành chuỗi mà không sử dụng ép kiểu, hãy sử dụng hàm string.format().


print("Pi là " .. math.pi) --> Pi là 3.1415926535898
print("Pi là " .. 3.1415927) --> Pi là 3.1415927
-- Làm tròn đến ba chữ số thập phân
print("Pi là " .. string.format("%.3f", 3.1415927)) -- Pi là 3.142

Gán

Một số thuộc tính mong đợi các kiểu dữ liệu nhất định, chẳng hạn như một Enum hoặc chuỗi, nhưng bạn có thể gán một giá trị khác kiểu cho nó và Luau sẽ chuyển đổi giá trị thành kiểu mà thuộc tính mong đợi.

Enums

Luau ép các số và chuỗi của các giá trị enum thành tên enum đầy đủ. Ví dụ, bạn có thể đặt tên giá trị của thuộc tính Part.Material bằng cách sử dụng một số, chuỗi, hoặc tên enum đầy đủ, và hàm print() luôn in tên enum đầy đủ. Thực hành tốt nhất là rõ ràng và sử dụng tên enum đầy đủ. Để biết thêm thông tin về Enums, xem 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
-- Đây là thực hành tốt nhất vì nó rõ ràng nhất
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(part3.Material) -- Enum.Material.Concrete

Thời gian trong ngày

Thuộc tính Lighting.TimeOfDay, xác định xem đó là ban đêm, ban ngày, hoặc thời gian khác, là một chuỗi đại diện cho kiểu dữ liệu DateTime. Nếu bạn gán một số cho Lighting.TimeOfDay, Luau sẽ chuyển đổi nó thành chuỗi đại diện cho 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, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.