Lua - Değişkenler
Değişken, programlarımızın değiştirebileceği bir depolama alanına verilen addan başka bir şey değildir. İşlevler ve tablolar dahil olmak üzere farklı türde değerleri tutabilir.
Bir değişkenin adı harflerden, rakamlardan ve alt çizgi karakterinden oluşabilir. Bir harf veya alt çizgiyle başlamalıdır. Lua büyük / küçük harfe duyarlı olduğu için büyük ve küçük harfler farklıdır. Lua'da sekiz temel değer türü vardır -
Lua'da değişken veri türlerimiz olmasa da, değişkenin kapsamına göre üç türümüz vardır.
Global variables - Yerel olarak açıkça belirtilmediği sürece tüm değişkenler genel kabul edilir.
Local variables - Bir değişken için tür yerel olarak belirtildiğinde, kapsamı kapsamları içindeki işlevlerle sınırlandırılır.
Table fields - Bu, işlevler dahil olmak üzere nil dışında her şeyi tutabilen özel bir değişken türüdür.
Lua'da Değişken Tanım
Değişken tanımı, yorumlayıcıya değişken için depolamanın nerede ve ne kadar oluşturulacağını söylemek anlamına gelir. Bir değişken tanımının isteğe bağlı bir türü vardır ve aşağıdaki gibi bu türden bir veya daha fazla değişkenin bir listesini içerir -
type variable_list;
Buraya, type isteğe bağlı olarak yereldir veya türü global yaparak belirtilir ve variable_listvirgülle ayrılmış bir veya daha fazla tanımlayıcı adından oluşabilir. Bazı geçerli beyanlar burada gösterilmektedir -
local i, j
local i
local a,c
Çizgi local i, jhem i hem de j değişkenlerini bildirir ve tanımlar; yorumlayıcıya i, j adlı değişkenler yaratması talimatını verir ve kapsamı yerel olarak sınırlar.
Değişkenler bildirimlerinde başlatılabilir (bir başlangıç değeri atanabilir). Başlatıcı, bir eşittir işaretinden ve ardından aşağıdaki gibi sabit bir ifadeden oluşur:
type variable_list = value_list;
Bazı örnekler -
local d , f = 5 ,10 --declaration of d and f as local variables.
d , f = 5, 10; --declaration of d and f as global variables.
d, f = 10 --[[declaration of d and f as global variables.
Here value of f is nil --]]
Başlatıcı olmadan tanımlama için: statik depolama süresi olan değişkenler örtük olarak nil ile başlatılır.
Lua'da Değişken Beyanı
Yukarıdaki örneklerde görebileceğiniz gibi, çoklu değişkenler için atamalar bir değişken_listesi ve değer_listesi biçimini izler. Yukarıdaki örnektelocal d, f = 5,10 değişken_listesinde d ve f ve değerler listesinde 5 ve 10 var.
Lua'da değer atama, değer_listesindeki ilk değer ile değişken_listesindeki ilk değişken gibi gerçekleşir ve bu böyle devam eder. Dolayısıyla, d'nin değeri 5 ve f'nin değeri 10'dur.
Misal
Değişkenlerin en üstte bildirildiği, ancak ana işlev içinde tanımlandığı ve başlatıldığı aşağıdaki örneği deneyin -
-- Variable definition:
local a, b
-- Initialization
a = 10
b = 30
print("value of a:", a)
print("value of b:", b)
-- Swapping of variables
b, a = a, b
print("value of a:", a)
print("value of b:", b)
f = 70.0/3.0
print("value of f", f)
Yukarıdaki kod oluşturulduğunda ve yürütüldüğünde, aşağıdaki sonucu verir -
value of a: 10
value of b: 30
value of a: 30
value of b: 10
value of f 23.333333333333
Lua'da Lvalues ve Rvalues
Lua'da iki tür ifade vardır:
lvalue- Bir bellek konumuna başvuran ifadeler "lvalue" ifadesi olarak adlandırılır. Bir değer, bir ödevin sol veya sağ tarafı olarak görünebilir.
rvalue- rvalue terimi, bellekteki bazı adreslerde depolanan bir veri değerini ifade eder. Bir rvalue, kendisine atanmış bir değere sahip olamayan bir ifadedir, yani bir rvalue sağ tarafta görünebilir, ancak atamanın sol tarafında görünmez.
Değişkenler ldeğerlerdir ve bu nedenle bir atamanın sol tarafında görünebilir. Sayısal değişmez değerler r değerleridir ve bu nedenle atanmayabilir ve sol tarafta görünemez. Aşağıdaki geçerli bir ifadedir -
g = 20
Ancak aşağıdaki geçerli bir ifade değildir ve bir oluşturma zamanı hatası oluşturur -
10 = 20
Lua programlama dilinde, yukarıdaki atama türlerinden ayrı olarak, aynı tek ifadede birden çok ldeğer ve r değerine sahip olmak mümkündür. Aşağıda gösterilmiştir.
g,l = 20,30
Yukarıdaki açıklamada, 20, g'ye ve 30, l'ye atanmıştır.