Luau bir işlemde bir değeri veya değişkeni kullanmaya çalışırsa, örneğin aritmetik , kombinasyon veya atama , ancak değer operasyonun beklediği tür değilse, Luau değeri değiştirir ( zorlar ) değer yazdeğiştirmek için.Bu işlem için çalışma sırasında zorlama gerçekleşir ve bir değişkenin değerini değiştirmez.
Sayısal
Luau sayılara aritmetik işlemlerde sayıları zorlar.Bu davranış Luau'ya yerleştirilir.Türler aritmetik için uyumsuzsa, Luau bir hata atar ve kalan kısmı çalıştırmaz.Örneğin, bir dize bir sayıyı temsil etmiyorsa, sayıya bir dize ekleyemezsiniz.
print(100 + "7") -- 107print(100 - "7") -- 93print("1000" + 234) -- 1234print("1000" - 234) -- 766print("hello" + 234) -- error: attempt to perform arithmetic (add) string and number
Katılım
Katılımda, Luau sayıları dizeye zorlar. Zorlama kullanmadan bir sayıyı dizeye dönüştürmek için string.format() fonksiyonunu kullanın.
print("Pi is " .. math.pi) --> Pi 3.1415926535898print("Pi is " .. 3.1415927) --> Pi 3.1415927'dir-- Üç ondalık sayıya turlarprint("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142
Görev
Bazı özellikler belirli veri türleri bekler, örneğin bir Enum veya dizi, ancak ona farklı bir türden bir değer atayabilir ve Luau değeri özelliğin beklediği tipe dönüştürür.
Enleri
Luau, sayıları ve enum değerlerinin dize sıralarını tüm enum adına zorlar.Örneğin, bir sayı, dize veya tam bir dizi adı kullanarak Part.Material özelliğinin değerini adlandırabilir ve print() fonksiyonu daima tüm dizi adını yazdırır.Açık olmak ve tüm enum adını kullanmak en iyi uygulamadır.Enums hakkında daha fazla bilgi için, Enums bakın.
local Workspace = game:GetService("Workspace")local part1 = Instance.new("Part")part1.Material = 816part1.Parent = Workspaceprint(part1.Material) -- Enum.Material.Concrete'ınlocal part2 = Instance.new("Part")part2.Material = "Concrete"part2.Parent = Workspaceprint(part2.Material) -- Enum.Material.Concrete'ın-- Bu en iyi uygulamadır çünkü en açık olanıdırlocal part3 = Instance.new("Part")part3.Material = Enum.Material.Concretepart3.Parent = Workspaceprint(part3.Material) -- Enum.Material.Concrete
Günün saati
Gece, gündüz veya başka bir zaman olup olmadığını tanımlayan Lighting.TimeOfDay özelliği, DateTime veri yazbir dize temsilidir.Bir sayıyı Lighting.TimeOfDay 'a atarsanız, Luau bunu DateTime 'in dize temsiline dönüştürür.
local Lighting = game:GetService("Lighting")Lighting.TimeOfDay = "05:00:00"print(Lighting.TimeOfDay) -- 05:00:00Lighting.TimeOfDay = 5print(Lighting.TimeOfDay) -- 05:00:00