Sebuah variabel adalah nama yang menyimpan nilai. Nilai variabel dapat berupa angka, string, boolean, tipe data, dan lainnya.
Nama variabel
Nama variabel dapat berupa string huruf, digit, dan garis bawah yang tidak diawali dengan digit dan tidak merupakan kata yang sudah dicadangkan.
LETTERS -- valid
a1 -- valid
var_name -- valid
_test -- valid
if -- TIDAK valid
25th -- TIDAK validNama variabel bersifat sensitif terhadap huruf besar/kecil, jadi TestVar dan TESTVAR adalah nama yang berbeda. Hindari memberi nama variabel dengan garis bawah dan semua huruf kapital, seperti _VERSION, karena Luau mungkin mencadangkannya untuk variabel global internal.
Praktik terbaik
Praktik terbaik adalah mengeja kata-kata secara lengkap. Singkatan umumnya membuat kode lebih mudah ditulis, tetapi lebih sulit dibaca. Mengikuti praktik penamaan yang umum saat memberi nama variabel dapat membantu Anda dan orang lain memahami makna atau tujuannya:
- Gunakan nama PascalCase untuk objek kelas dan enum-like.
- Gunakan nama PascalCase untuk semua API Roblox. API camelCase sebagian besar sudah tidak digunakan lagi.
- Gunakan nama camelCase untuk variabel lokal, nilai anggota, dan fungsi.
- Jangan kapitalisasi seluruh akronim dalam nama. Misalnya, tulis aJsonVariable atau MakeHttpCall.
Nama yang dicadangkan
Luau mencadangkan kata kunci berikut, jadi Anda tidak dapat menggunakannya untuk memberi nama variabel atau fungsi:
- and
- for
- or
- break
- function
- repeat
- do
- if
- return
- else
- in
- then
- elseif
- local
- true
- end
- nil
- until
- false
- not
- while
Menetapkan nilai
Untuk membuat variabel dan menetapkan nilai padanya, gunakan operator =. Letakkan variabel di sebelah kiri = dan nilai di sebelah kanan. Jika Anda tidak menetapkan nilai, nilai tersebut adalah nil.
Variabel dapat memiliki ruang lingkup (scope) global atau lokal scopes. Secara default, mereka memiliki ruang lingkup global, tetapi hampir selalu lebih baik untuk membuatnya dengan ruang lingkup lokal karena Luau mengakses variabel lokal lebih cepat daripada yang global. Untuk memberikan variabel ruang lingkup lokal, letakkan kata kunci local sebelum nama variabel saat Anda menetapkan nilai padanya. Untuk memberikan ruang lingkup lokal dan juga mencegah penetapan ulang, gunakan const alih-alih local. Untuk informasi lebih lanjut, lihat Ruang Lingkup.
local nilVar
local x = 10
local word = "Hello"
local boolean = true
print(nilVar) -- nil
print(x) -- 10
print(word) -- Hello
print(boolean) -- trueMenetapkan nilai ke beberapa variabel
Anda dapat menetapkan nilai ke beberapa variabel dalam satu baris dengan memisahkan setiap pasangan variabel-nilai dengan koma. Jika Anda memiliki lebih banyak variabel daripada nilai, maka Luau menetapkan nil ke variabel tambahan. Jika Anda memiliki lebih banyak nilai daripada variabel, Luau tidak menetapkan nilai tambahan ke variabel mana pun.
local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- variabel tambahan
local g, h = 7, 8, 9 -- nilai tambahan
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8Mengubah nilai
Untuk mengubah nilai dari sebuah variabel, tetapkan nilai lain padanya.
local x, y = 10, 20
print(x) -- 10
print(y) -- 20
x = 1000
y = 2000
print(x) -- 1000
print(y) -- 2000Variabel const
Untuk membuat variabel yang tidak dapat Anda tetapkan ulang, gunakan const alih-alih local. Mencoba untuk menetapkan ulang variabel const menyebabkan kesalahan, termasuk melalui operator penetapan gabungan seperti +=.
const MAX_HEALTH = 100
MAX_HEALTH = 50 -- kesalahan: tidak dapat menetapkan ulang variabel const
MAX_HEALTH += 1 -- kesalahan: tidak dapat menetapkan ulang variabel constSeperti local, const menerima anotasi tipe, seperti const MAX_HEALTH: number = 100.
Anda juga dapat mendeklarasikan fungsi dengan const, yang mencegah penetapan ulang nama fungsi tersebut.
const function addOneAndTwo()
local result = 1 + 2
print(result)
end
addOneAndTwo = nil -- kesalahan: tidak dapat menetapkan ulang variabel constconst membuat variabel itu sendiri tidak dapat diubah, bukan nilai yang dipegangnya. Jika variabel const memegang sebuah tabel, Anda masih dapat mengubah isi tabel tersebut. Untuk membuat isi tabel juga tidak dapat diubah, gunakan table.freeze().
const SETTINGS = { volume = 0 }
SETTINGS.volume = 1 -- ok, mengubah nilai di dalam tabel
SETTINGS = {} -- kesalahan: tidak dapat menetapkan ulang variabel constBerbeda dengan kata kunci dalam Nama yang dicadangkan, const bersifat kontekstual. Luau hanya memperlakukannya sebagai kata kunci di mana local valid, jadi kode yang ada yang menggunakan const sebagai nama variabel tetap berfungsi.
local const = 1
print(const) -- 1
const = 2 -- ok, `const` adalah nama variabel di siniUntuk informasi lebih lanjut dan kasus tepi, lihat dokumentasi Luau.