類型強制

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

如果 Luau 嘗試在運算中使用值或 變量 ,例如 乘法累加 或 1> 指定1> ,但值不是預期的資料類輸入,則會在執行時對值進行強制轉換 ( 4> 強制執行 4> ),以變更變

術語

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

結合

在 concatenation 中,Luau 強制數字變成字串。要使用 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

分配

有些屬性期望特定資料類型,例如 枚列 或字串,但您可以為它分配不同類型的值,並且 Luau 將值轉換為期望的類型。

數值

Luau 強制數值和枚數值的數值和字串到全枚名稱。 例如,您可以使用字串或全枚名稱來命名 Part.Material 屬性的值,並且 print() 功能會 toujours 打印全枚名稱。 為了更好的做法,請務必清楚並使用 Enums 。對於更多關於枚數


local part1 = Instance.new("Part")
part1.Parent = workspace
part1.Material = 816
print(part1.Material) -- 枚數.Material.Concrete
local part2 = Instance.new("Part")
part2.Parent = workspace
part2.Material = "Concrete"
print(part2.Material) -- 枚數.Material.Concrete
-- 這是最佳實踐,因為它是最明確的
local part3 = Instance.new("Part")
part3.Parent = workspace
part3.Material = Enum.Material.Concrete
print(part3.Material) -- Enum.Material.Concrete

時間的日

Class.Lighting.TimeOfDay 屬性,定義是否為夜晚、白天或任何其他時間,是 Luau 轉換為 DateTime 資料類輸入的字符表示。如果您為 Lighting.TimeOfDay 指定數字,Luau 將它轉換為 1>Datatype.DateTime1> 的字符表示。


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