Zorlama türü

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

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") -- 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

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.1415926535898
print("Pi is " .. 3.1415927) --> Pi 3.1415927'dir
-- Üç ondalık sayıya turlar
print("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 = 816
part1.Parent = Workspace
print(part1.Material) -- Enum.Material.Concrete'ın
local part2 = Instance.new("Part")
part2.Material = "Concrete"
part2.Parent = Workspace
print(part2.Material) -- Enum.Material.Concrete'ın
-- Bu en iyi uygulamadır çünkü en açık olanıdır
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(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:00
Lighting.TimeOfDay = 5
print(Lighting.TimeOfDay) -- 05:00:00