- Katılım
- 4 yıl 5 ay 19 gün
- Mesajlar
- 1,202
İfadeler
Lua’ da ifadeler sayısal sabitleri, dizeleri, değişkenleri, tekli ve ikili işlemleri ve işlev çağrılarını içerir.
İlişkisel Operatörler
Lua dili ilişkisel operatörleri kullanmamızı sağlar.
<> <=> === ~ =
Tüm bu operatörler true veya false sonuçlanabilir.
Herhangi iki değere her iki operatörü de uygulayabiliriz. Lua türlerine göre karşılaştırma yapar. Farklı türde değerler varsa, Lua o farklı değerleri de dikkate alır.
Programımızda tabloları, kullanıcı girişlerini ve işlevleri karşılaştırabiliriz.
a = {}; ax = 1; ay = 0
b = {}; bx = 1; by = 0
c = a
a==c veya a~=b
Biz sadece iki sayı veya iki dize için bu operatörleri uygulayabiliriz. Lua dili numaraları karşılaştırır. Lua dili yerel seti izleyerek ve alfabetik sıraya göre oluşturulan dizeleri de karşılaştırır.
Farklı tipte değerler karşılaştırıldığında, dikkatli olmak gerekir. Örneğin "0"==0 yanlış bir ifadedir. Ayrıca, 2<15 tabi ki doğrudur ama "2"<"15" ifadesi yanlıştır daha doğrusu bize istediğimiz sonucu vermez. Çünkü tırnak içerisindeki sayılarda birer kelime karakter dizesidir.
Mantıksal Operatörler
Lua’ da mantıksal operatörler olarak and, or, not operatörleri kullanılır. Kontrol yapıları gibi, tüm mantıksal operatörler true, false veya nil olabilir. And operatörü false ise ilk argüman döner, aksi takdirde ikinci argüman döner. Or operatörü false değilse ilk argüman, aksi takdirde ikinci argüman döner .Bu konuyu biraz irdelemeniz lazım.Aşağıda örnekler verdim kendinizde farklı kodlar yazarsanız konuyu daha iyi anlarsınız.
print(nil and 13) –> nil
print(false and 13) –> false
print(4 or 5) –> 4
print(false or 5) –> 5
Not operatörü her zaman true veya false döndürür:
print(not nil) –> true
print(not false) –> true
print(not 0) –> false
print(not not nil) –> false
Verdiğim örnekleri yazıp deneyebilirsiniz.
Birleştirme (..)
Lua’ da “.. ” (iki nokta) operatörü birleştirme işlemini ifade eder. İşlenen herhangi bir sayı ise, dizeyi bu sayıya dönüştürür.
Örnek:
print (“Merhaba” .. “Fivemturk”) -> Merhaba Fivemturk
print (0 .. 1) -> 01
Lua dizeleri sabit değerlerden oluşur. Birleştirme operatörü işlemde bir değişiklik yapmadan, yeni bir dize oluşturur.
Bir sayıyı bir dizeye dönüştürmek için tostring fonksiyonu çağırılabilir veya birleştirme operatörü kullanılabilir.
print (toString (10) == "10") -> true
print (10 .. "" == "10") -> true üstteki örnekle aynı işlevi yapar
10 sayısını .. "" operatörüyle string bir değere dönüştürdük.Böylece iki "10" sayısı birbirine eşit yani true sonucunu verir.
Operatör Önceliği
Programlarken operatör önceliği sıralaması
^
not
* /
+ –
..
<> <=> = ~ ===
and
or
Aşağıda işlem önceliğine göre bazı örnekler vardır.
a+i < b/2+1 <–> (a+i) < ((b/2)+1)
5+x^2*8 <–> 5+((x^2)*8)
a < y and y <= z <–> (a < y) and (y <= z)
-x^2 <–> -(x^2)
x^y^z <–> x^(y^z)
Lua’ da ifadeler sayısal sabitleri, dizeleri, değişkenleri, tekli ve ikili işlemleri ve işlev çağrılarını içerir.
İlişkisel Operatörler
Lua dili ilişkisel operatörleri kullanmamızı sağlar.
<> <=> === ~ =
Tüm bu operatörler true veya false sonuçlanabilir.
Herhangi iki değere her iki operatörü de uygulayabiliriz. Lua türlerine göre karşılaştırma yapar. Farklı türde değerler varsa, Lua o farklı değerleri de dikkate alır.
Programımızda tabloları, kullanıcı girişlerini ve işlevleri karşılaştırabiliriz.
a = {}; ax = 1; ay = 0
b = {}; bx = 1; by = 0
c = a
a==c veya a~=b
Biz sadece iki sayı veya iki dize için bu operatörleri uygulayabiliriz. Lua dili numaraları karşılaştırır. Lua dili yerel seti izleyerek ve alfabetik sıraya göre oluşturulan dizeleri de karşılaştırır.
Farklı tipte değerler karşılaştırıldığında, dikkatli olmak gerekir. Örneğin "0"==0 yanlış bir ifadedir. Ayrıca, 2<15 tabi ki doğrudur ama "2"<"15" ifadesi yanlıştır daha doğrusu bize istediğimiz sonucu vermez. Çünkü tırnak içerisindeki sayılarda birer kelime karakter dizesidir.
Mantıksal Operatörler
Lua’ da mantıksal operatörler olarak and, or, not operatörleri kullanılır. Kontrol yapıları gibi, tüm mantıksal operatörler true, false veya nil olabilir. And operatörü false ise ilk argüman döner, aksi takdirde ikinci argüman döner. Or operatörü false değilse ilk argüman, aksi takdirde ikinci argüman döner .Bu konuyu biraz irdelemeniz lazım.Aşağıda örnekler verdim kendinizde farklı kodlar yazarsanız konuyu daha iyi anlarsınız.
print(nil and 13) –> nil
print(false and 13) –> false
print(4 or 5) –> 4
print(false or 5) –> 5
Not operatörü her zaman true veya false döndürür:
print(not nil) –> true
print(not false) –> true
print(not 0) –> false
print(not not nil) –> false
Verdiğim örnekleri yazıp deneyebilirsiniz.
Birleştirme (..)
Lua’ da “.. ” (iki nokta) operatörü birleştirme işlemini ifade eder. İşlenen herhangi bir sayı ise, dizeyi bu sayıya dönüştürür.
Örnek:
print (“Merhaba” .. “Fivemturk”) -> Merhaba Fivemturk
print (0 .. 1) -> 01
Lua dizeleri sabit değerlerden oluşur. Birleştirme operatörü işlemde bir değişiklik yapmadan, yeni bir dize oluşturur.
Bir sayıyı bir dizeye dönüştürmek için tostring fonksiyonu çağırılabilir veya birleştirme operatörü kullanılabilir.
print (toString (10) == "10") -> true
print (10 .. "" == "10") -> true üstteki örnekle aynı işlevi yapar
10 sayısını .. "" operatörüyle string bir değere dönüştürdük.Böylece iki "10" sayısı birbirine eşit yani true sonucunu verir.
Operatör Önceliği
Programlarken operatör önceliği sıralaması
^
not
* /
+ –
..
<> <=> = ~ ===
and
or
Aşağıda işlem önceliğine göre bazı örnekler vardır.
a+i < b/2+1 <–> (a+i) < ((b/2)+1)
5+x^2*8 <–> 5+((x^2)*8)
a < y and y <= z <–> (a < y) and (y <= z)
-x^2 <–> -(x^2)
x^y^z <–> x^(y^z)