Jika Luau mencoba menggunakan value atau variabel dalam operasi, seperti aritmatika , konvensi , atau 1> peng割a1>, tetapi value bukanlah jenis yang diharapkan oleh operasi, maka Luau mengkonversi ( 4> coerces4> ) value
Aritmatika
Luau menyuruh string ke nomor dalam operasi aritmatika. Perilaku ini dibangun ke dalam Luau. Jika jenis tidak kompatibel untuk aritmatika, Luau menghasilkan kesalahan dan tidak mengeksekkan sisa script. Misalnya, Anda tidak dapat menambahkan string ke nomor jika string tidak mewakili angka.
print(100 + "7") -- 107print(100 - "7") -- 93print("1000" + 234) -- 1234print("1000" - 234) -- 766print("hello" + 234) -- error: attempt to perform arithmetic (add) string and number
Kontrasenasi
Dalam konkatenasi, Luau menekan nomor ke string. Untuk mengubah nomor menjadi string tanpa menggunakan coercion, gunakan fungsi string.format().
print("Pi is " .. math.pi) --> Pi adalah 3.1415926535898print("Pi is " .. 3.1415927) --> Pi adalah 3.1415927-- Putaran ke tiga tempat desimalprint("Pi is " .. string.format("%.3f", 3.1415927)) -- Pi is 3.142
Penggunaan
Beberapa properti mengharapkan beberapa jenis data, seperti ENSEMBLE atau string, tetapi Anda dapat menetapkan nilai jenis yang berbeda ke nilai yang diharapkan oleh propinsi.
Umum
Luau menekan nomor dan string nilai枚 ke dalam nama枚 penuh. Misalnya, Anda dapat menyebutkan nilai Part.Material property menggunakan nomor, string, atau nama enum penuh, dan fungsi print() selalu mencetak nama enum penuh. Ini praktik terbaik untuk menjadi eksplisit dan menggunakan nama enum
local part1 = Instance.new("Part")part1.Parent = workspacepart1.Material = 816print(part1.Material) -- Daftar.Bahan.Betonlocal part2 = Instance.new("Part")part2.Parent = workspacepart2.Material = "Concrete"print(part2.Material) -- Daftar.Bahan.Beton-- Ini adalah praktik terbaik karena itu yang paling jelaslocal part3 = Instance.new("Part")part3.Parent = workspacepart3.Material = Enum.Material.Concreteprint(part3.Material) -- Enum.Material.Concrete
WaktuHari
Properti Lighting.TimeOfDay, yang mendefinisikan apakah itu malam, hari, atau waktu lainnya, adalah representasi string dari jenis data DateTime. Jika Anda menetapkan nomor kepada Lighting.TimeOfDay, Luau mengubahnya menjadi representasi string dari jenis data 1>
local Lighting = game:GetService("Lighting")Lighting.TimeOfDay = "05:00:00"print(Lighting.TimeOfDay) -- 05:00:00Lighting.TimeOfDay = 5print(Lighting.TimeOfDay) -- 05:00:00