Türü İstismar

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

Eğer Luau bir işlemde bir değeri veya değişkeni kullanmaya çalışır, örneğin aritmetik , kombinasyon veya 2>atama2> gibi, ancak değer yazbeklediği için değeri değiştir

Aritmetik

Luau, aritmetik işlemler içindeki sayılara zorluk çeker. Bu davranış Luau'nun içine inşa edilmiştir. Eğer türler aritmetik için uyumsuzsa, Luau bir hata oluşturur ve geri kalan kısmı çalıştırmaz. Örneğin, bir türü bir sayıyı temsil etmiyorsa, Luau bir türü ekleyemez.


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

Birleştirme

Katıştırma işlemi, Luau sayıları senkronize edilmiş yuva haline getirir. Bir sayıyı senkronize edilmiş yuva olarak dönüştürmek için string.format().


print("Pi is " .. math.pi) --> Pi 3.1415926535898
print("Pi is " .. 3.1415927) --> Pi 3.1415927
-- Üç ondalık yere kadar tura
print("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142

Görev

Bazı özellikler belli veri türlerini bekler, örneğin bir Envanter veya bir dizi, ancak bir değeri farklı bir türde atayabilirsiniz ve Luau, değeri özellik beklediği türü dönüştürür.

Enümler

Luau, sayıları ve dizgi değerlerinin dizgi adını tam sayıya zorlar. Örneğin, bir sayıyı kullanarak Part.Material özelliğinin değerini veya bir dizgi adını yazabilirsiniz ve print() işlevi her zaman değeri full dizgi adıyla yazar. Enümler için


local part1 = Instance.new("Part")
part1.Parent = workspace
part1.Material = 816
print(part1.Material) -- Envanter.Malzeme.Beton
local part2 = Instance.new("Part")
part2.Parent = workspace
part2.Material = "Concrete"
print(part2.Material) -- Envanter.Malzeme.Beton
-- Bu en iyi pratik çünkü en açık
local part3 = Instance.new("Part")
part3.Parent = workspace
part3.Material = Enum.Material.Concrete
print(part3.Material) -- Enum.Material.Concrete

Günün Zamanı

Class.Lighting.TimeOfDay özelliği, bir gece, gündüz veya herhangi bir saat olup olmadığını tanımlar, bu bir DateTime veri yaztemsilidir. Lighting.TimeOfDay ile bir sayıyı 1>Datatype.DateTime1> ile 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