Bir değişken, bir değeri tutan bir isimdir. Değişken değerleri sayılardan, stringlerden, booleanlardan, veri türlerinden ve daha fazlasından oluşabilir.
Değişken isimleri
Değişken isimleri, bir rakamla başlamayan, harfler, rakamlar ve alt çizgilerden oluşan herhangi bir ayrılmış olmayan dize olabilir.
LETTERS -- geçerli
a1 -- geçerli
var_name -- geçerli
_test -- geçerli
if -- GEÇERLİ DEĞİL
25th -- GEÇERLİ DEĞİLDeğişken isimleri büyük/küçük harf duyarlıdır, bu nedenle TestVar ve TESTVAR farklı isimlerdir. Değişkenleri alt çizgi ve tamamen büyük harflerle adlandırmaktan kaçının, örneğin _VERSION, çünkü Luau bunları dahili global değişkenler için ayırabilir.
En iyi uygulamalar
Kelimeleri tam olarak yazmak en iyi uygulamadır. Kısaltmalar genellikle kodu yazmayı kolaylaştırır, ancak okumayı zorlaştırır. Değişkenlerinizi adlandırırken yaygın adlandırma uygulamalarına uymak, sizin ve diğerlerinin anlamını veya amacını anlamalarına yardımcı olabilir:
- Sınıf ve enum benzeri nesneler için PascalCase isimleri kullanın.
- Tüm Roblox API'leri için PascalCase isimleri kullanın. camelCase API'leri çoğunlukla kullanımdan kaldırılmıştır.
- Yerel değişkenler, üye değerleri ve fonksiyonlar için camelCase isimleri kullanın.
- Değişmeyeceğini beklediğiniz sabitler için LOUD_SNAKE_CASE isimleri kullanın, örneğin const değerleri veya diğer değerler.
- İsimler içinde tüm kısaltmaları büyük harfle yazmayın. Örneğin, aJsonVariable veya MakeHttpCall yazın.
Ayrılmış isimler
Luau aşağıdaki anahtar kelimeleri ayırır, bu nedenle bunları değişkenler veya fonksiyonlar adlandırmak için kullanamazsınız:
- and
- for
- or
- break
- function
- repeat
- do
- if
- return
- else
- in
- then
- elseif
- local
- true
- end
- nil
- until
- false
- not
- while
Değer atama
Bir değişken oluşturmak ve ona bir değer atamak için = operatörünü kullanın. Değişkeni = operatörünün soluna ve değeri sağa koyun. Eğer bir değer koymazsanız, değer nil olur.
Değişkenler global veya yerel kapsamlara sahip olabilir. Varsayılan olarak global kapsamları vardır, ancak genellikle yerel kapsamda oluşturmaları daha iyidir çünkü Luau yerel değişkenlere global olanlardan daha hızlı erişir. Bir değişkene yerel kapsam vermek için, ona bir değer atarken değişkenin adından önce local anahtar kelimesini koyun. Yerel kapsam vermek ve aynı zamanda yeniden atamayı önlemek için local yerine const kullanın. Daha fazla bilgi için Kapsam sayfasına bakın.
local nilVar
local x = 10
local word = "Merhaba"
local boolean = true
print(nilVar) -- nil
print(x) -- 10
print(word) -- Merhaba
print(boolean) -- trueBirden fazla değişkene değer atama
Bir satırda birden fazla değişkene değer atamak için her değişken-değer çiftini bir virgülle ayırarak yazabilirsiniz. Eğer daha fazla değişkeniniz varsa, Luau fazladan değişkenlere nil atar. Eğer daha fazla değeriniz varsa, Luau fazladan değerleri hiçbir değişkene atamaz.
local a, b, c = 1, 2, 3
local d, e, f = 4, 5 -- fazladan değişken
local g, h = 7, 8, 9 -- fazladan değer
print(a, b, c) -- 1, 2, 3
print(d, e, f) -- 4, 5, nil
print(g, h) -- 7, 8Değerleri değiştirme
Bir değişkenin değerini değiştirmek için, ona başka bir değer atayın.
local x, y = 10, 20
print(x) -- 10
print(y) -- 20
x = 1000
y = 2000
print(x) -- 1000
print(y) -- 2000Const değişkenler
Yeniden atayamayacağınız bir değişken oluşturmak için local yerine const kullanın. Bir const değişkenini yeniden atamaya çalışmak bir hata oluşturur, bu bileşik atama operatörü gibi += ile bile.
const MAX_HEALTH = 100
MAX_HEALTH = 50 -- hata: bir const değişkenini yeniden atayamazsınız
MAX_HEALTH += 1 -- hata: bir const değişkenini yeniden atayamazsınızlocal gibi, const da bir tip notasyonu kabul eder, örneğin const MAX_HEALTH: number = 100.
Ayrıca, const ile bir fonksiyon da tanımlayabilirsiniz, bu da fonksiyonun adını yeniden atamayı engeller.
const function addOneAndTwo()
local result = 1 + 2
print(result)
end
addOneAndTwo = nil -- hata: bir const değişkenini yeniden atayamazsınızconst, değişkenin kendisini değiştirilemez hale getirir, tuttuğu değeri değil. Eğer bir const değişkeni bir tablo tutuyorsa, tablonun içeriğini hala değiştirebilirsiniz. İçeriği de değiştirilemez hale getirmek için table.freeze() kullanın.
const SETTINGS = { volume = 0 }
SETTINGS.volume = 1 -- tamam, tablonun içindeki bir değeri değiştirir
SETTINGS = {} -- hata: bir const değişkenini yeniden atayamazsınızAyrılmış isimler bölümündeki anahtar kelimelerin aksine, const bağlamsaldır. Luau, yalnızca local'ın geçerli olduğu yerlerde anahtar kelime olarak kabul eder, bu nedenle const'ı bir değişken adı olarak kullanan mevcut kod hala çalışır.
local const = 1
print(const) -- 1
const = 2 -- tamam, burada `const` bir değişken adıdırDaha fazla bilgi ve kenar durumları için Luau belgelerine bakın.