Koersi Tipe

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Jika Luau mencoba menggunakan suatu nilai atau variabel dalam suatu operasi, seperti aritmetika, penggabungan, atau penugasan, tetapi nilai tersebut bukan tipe yang diharapkan oleh operasi, maka Luau mengonversi (koersi) nilai tersebut untuk mengubah tipe datanya. Koersi terjadi pada waktu eksekusi untuk operasi tersebut dan tidak mengubah nilai dari suatu variabel.

Aritmetika

Luau mengoersi string menjadi angka dalam operasi aritmetika. Perilaku ini sudah ada di dalam Luau. Jika tipe tidak kompatibel untuk aritmetika, Luau akan melempar kesalahan dan tidak menjalankan sisa skrip. Misalnya, Anda tidak dapat menambahkan string ke angka jika string tersebut tidak mewakili angka.


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

Penggabungan

Dalam penggabungan, Luau mengoersi angka menjadi string. Untuk mengonversi angka menjadi string tanpa menggunakan koersi, gunakan fungsi string.format().


print("Pi adalah " .. math.pi) --> Pi adalah 3.1415926535898
print("Pi adalah " .. 3.1415927) --> Pi adalah 3.1415927
-- Membulatkan hingga tiga tempat desimal
print("Pi adalah " .. string.format("%.3f", 3.1415927)) -- Pi adalah 3.142

Penugasan

Beberapa properti mengharapkan tipe data tertentu, seperti Enum atau string, tetapi Anda dapat memberikan nilai dari tipe yang berbeda kepadanya dan Luau akan mengonversi nilai tersebut menjadi tipe yang diharapkan oleh properti.

Enums

Luau mengoersi angka dan string dari enum value menjadi nama enum lengkap. Misalnya, Anda dapat memberi nama nilai dari properti Part.Material menggunakan angka, string, atau nama enum lengkap, dan fungsi print() selalu mencetak nama enum lengkap. Praktik terbaik adalah bersikap eksplisit dan menggunakan nama enum lengkap. Untuk informasi lebih lanjut tentang Enums, lihat Enums.


local Workspace = game:GetService("Workspace")
local part1 = Instance.new("Part")
part1.Material = 816
part1.Parent = Workspace
print(part1.Material) -- Enum.Material.Concrete
local part2 = Instance.new("Part")
part2.Material = "Concrete"
part2.Parent = Workspace
print(part2.Material) -- Enum.Material.Concrete
-- Ini adalah praktik terbaik karena paling eksplisit
local part3 = Instance.new("Part")
part3.Material = Enum.Material.Concrete
part3.Parent = Workspace
print(part3.Material) -- Enum.Material.Concrete

Waktu Hari

Properti Lighting.TimeOfDay, yang mendefinisikan apakah itu malam, siang, atau waktu lainnya, adalah representasi string dari tipe data DateTime. Jika Anda memberikan sebuah angka kepada Lighting.TimeOfDay, Luau akan mengonversinya menjadi representasi string dari DateTime.


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
©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.