類型強制

*此內容是使用 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) -- 錯誤: 嘗試對字串和數字進行算術運算 (加法)

字串連接

在字串連接中,Luau 會將數字強制轉換為字串。要在不使用強制轉換的情況下將數字轉換為字串,請使用 string.format() 函數。


print("圓周率是 " .. math.pi) --> 圓周率是 3.1415926535898
print("圓周率是 " .. 3.1415927) --> 圓周率是 3.1415927
-- 四捨五入到小數點後三位
print("圓周率是 " .. string.format("%.3f", 3.1415927)) -- 圓周率是 3.142

賦值

某些屬性期望特定的數據類型,例如 枚舉 或字串,但您可以將不同類型的值賦給它,Luau 會將值轉換為屬性所期望的類型。

枚舉

Luau 將數字和枚舉值的字串強制轉換為完整的枚舉名稱。例如,您可以使用數字、字串或完整的枚舉名稱來命名 Part.Material 屬性的值,而 print() 函數始終會打印完整的枚舉名稱。最佳實踐是顯式使用完整的枚舉名稱。關於枚舉的更多資訊,請參見 枚舉


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 是我們在美國及其他國家地區的部分註冊與未註冊商標。