İşleçler, Verse programlama dilinde tanımlanan ve işlenenleri üzerinde matematik işlemleri gibi eylemler gerçekleştiren özel fonksiyonlardır. Örneğin, 1 + 2 ifadesinde + işleçtir, 1 ve 2 ise işlenenlerdir.
Verse’te göreceğin işleçlerin üç farklı biçimi vardır:
Önek: Yalnızca bir işlenen vardır ve işleç, işlenenden önce gelir.
İçek: İki işlenen vardır ve işleç, işlenenler arasında yer alır.
Sonek: Yalnızca bir işlenen vardır ve işleç, işlenenden sonra gelir.
Bu sayfada, Verse’te kullanabileceğin tüm işleçler, bu işleçlerin nasıl çalıştığı ve diğer işleçlerle birlikte kullanıldığında bunların değerlendirme sırası açıklanıyor.
Tüm İşleçler ve İşleç Önceliği Listesi
Aynı ifadede birden fazla işleç kullanıldığında en yüksekten en düşük önceliğe giden sırayla değerlendirilirler. Aşağıdaki tabloda Verse’teki tüm yerleşik işleçler ve bunların öncelik sırası listeleniyor.
| Ad | İşleç | Açıklama | İşleç Formatı | işleç önceliği | Örnek |
|---|---|---|---|---|---|
Sorgu |
|
| sonek | 9 |
|
Değildir |
|
| Önek | 8 |
|
Pozitif |
|
| Önek | 8 |
|
Negatif |
|
| Önek | 8 |
|
Çarpma |
|
| içtakı | 7 |
|
Bölme |
|
| içtakı | 7 |
|
Toplama |
|
| içtakı | 6 |
|
Çıkarma |
|
| içtakı | 6 |
|
Toplama atama |
| Bu işleçle toplama ve atamayı aynı işlemde kullanarak bir değişkenin değerini güncelleyebilirsin. Daha ayrıntılı bilgi için Matematik kısmına bakabilirsin. | içtakı | 5 |
|
Çıkarma atama |
| Bu işleçle çıkarma ve atamayı aynı işlemde kullanarak bir değişkenin değerini güncelleyebilirsin. Daha ayrıntılı bilgi için Matematik kısmına bakabilirsin. | içtakı | 5 |
|
Çarpma atama |
| Bu işleçle çarpma ve atamayı aynı işlemde kullanarak bir değişkenin değerini güncelleyebilirsin. Daha ayrıntılı bilgi için Matematik kısmına bakabilirsin. | içtakı | 5 |
|
Bölme atama |
| Bu işleçle bölme ve atamayı aynı işlemde kullanarak bir tamsayı olan değişkenin değerini güncelleyebilirsin. Daha ayrıntılı bilgi için Matematik kısmına bakabilirsin. | içtakı | 5 |
|
Eşittir |
|
| içtakı | 4 |
|
Eşit değildir |
|
| içtakı | 4 |
|
Küçüktür |
|
| içtakı | 4 |
|
Küçük veya eşittir |
|
| içtakı | 4 |
|
Büyüktür |
|
| içtakı | 4 |
|
Büyük veya eşittir |
|
| içtakı | 4 |
|
And |
|
| içtakı | 3 |
|
veya |
|
| içtakı | 2 |
|
Değişken ve sabit başlatma |
| Bu işleçle değerleri bir sabit veya değişkende depolayabilirsin. Daha fazla bilgi için Sabitler ve Değişkenler kısmına bakabilirsin. | içtakı | 1 |
|
Değişken atama |
| Bu işleçle bir değişkende depolanmış değerleri güncelleyebilirsin. Daha fazla bilgi için Sabitler ve Değişkenler kısmına bakabilirsin. | içtakı | 1 |
|
Aynı ifadede aynı önceliğe sahip işleçler varsa soldan sağa değerlendirilirler. Örneğin 3*2/4 ifadesinde, hem * hem de / işleçleri aynı önceliğe sahiptir, bu nedenle ilk olarak 3*2 değerlendirilir ve sonucu, / işleci için soldaki işlenen olur.
İfadeleri () ile gruplandırarak işleçlerin değerlendirildiği sırayı değiştirebilirsin. Örneğin, (1+2)*3 ve 1+(2*3) değerlendirildiğinde aynı sonucu vermez. Daha ayrıntılı bilgi için Gruplandırma kısmına bakabilirsin.
Karşılaştırma
Başarı ve başarısızlık akışını eşitsizlik ve eşitlik işleçlerini kullanan karşılaştırma ifadeleriyle kontrol edebilirsin. Karşılaştırma ifadeleri başarısız olabilir ifadelerdir, bu yüzden karşılaştırma işleçlerini yalnızca if ifadeleri gibi başarısızlık bağlamları içinde kullanabilirsin.
Aşağıdaki tabloda tüm işleçler ve destekledikleri türler açıklanmaktadır. Tüm karşılaştırma işleçleri içtakı biçimindedir.
| İşleç | Desteklenen Yerleşik Türler | Açıklama |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Hem <> hem de = işleçleri array (dizi), map (harita), tuple (demet) ve class (sınıf) örnekleri için de kısıtlamalarla birlikte desteklenir. Array, map ve tuple örnekleri yalnızca desteklenen türleri içerebilirken sınıf örnekleri yalnızca en az bir var üye içeriyorsa desteklenir.
Karar
Başarı ve başarısızlık akışlarını not (değil), and (ve) ve or (veya) işleçlerini kullanan karar ifadeleri ile kontrol edebilirsin. Karar ifadeleri başarısız olabilir ifadelerdir, bu yüzden karşılaştırma işleçlerini yalnızca if ifadeleri gibi başarısızlık bağlamları içinde kullanabilirsin. Başarılı veya başarısız olan tüm ifadeleri karar işleçleriyle birlikte kullanabilirsin.
Değil İşleci
not karar işleci bir ifadenin başarısını veya başarısızlığını yadsır. not işleci, önek biçimini kullanır.
Örneğin, expression başarısız olursa not expression başarılı olur. expression başarılı olduğunda, not expression başarısız olur ve expression ifadesinin efektleri asla gerçekleşmez (ifade hiç var olmamış gibi).
Örneğin, aşağıdaki kod yürütüldükten sonra Example ifadesinin değeri hâlâ ilk değeri olan 0 olacaktır:
var Example : int = 0
if (not (set Example = ExampleArray[0])) { … }Bir ifadenin başarılı olup olmayacağını kontrol etmek için not not expression şeklinde kullanabilirsin fakat bunu, ifadenin asla gerçekleşmeyeceği şekilde yaparsın.
| p İfadesinin Sonucu | not p İfadesinin Sonucu | not not p İfadesinin Sonucu |
|---|---|---|
Başarılı olur ve | İfade başarısız olur ve | İfade başarılı olur fakat |
Başarısız olur ve sonucu değer içermez. | İfade başarılı olur. İfade | İfade başarısız olur. İfadenin sonucu hiçbir değer içermez. |
p ile temsil edilen bir ifadeyi değerlendiren not işleci için referans.
Ve / Veya İşleçleri
and karar işleci, içek biçimini kullanır ve her iki işlenen başarılı olursa başarılı olan veya en az bir işlenen başarısız olursa başarısız olan bir başarısız olabilir ifadedir.
or karar işleci içek biçimini kullanır ve şu özellikleri taşır:
Birinci işlenen için bir başarısızlık bağlamıdır.
Yalnızca ikinci işlenen başarısız olabilir nitelikteyse bir başarısız olabilir ifadedir.
or işleci, birinci işlenen başarılı olursa ikinci işlenenin değerlendirmesini atlar.
Aşağıdaki tabloda and ve or işleçlerini kullanan karar ifadeleri için tüm işlenen kombinasyonlarının başarı ve başarısızlık sonuçları açıklanmaktadır.
| p İfadesinin Sonucu | q İfadesinin Sonucu | p and q İfadelerinin Sonucu | p or q İfadesinin Sonucu |
|---|---|---|---|
Başarılı olur ve | Başarılı olur ve | İfade başarılı olur ve hem | İfade başarılı olur ve yalnızca |
Başarılı olur ve | Başarısız olur ve sonucu değer içermez. | İfade başarısız olur ve ne | İfade başarılı olur ve yalnızca |
Başarısız olur ve sonucu değer içermez. | Başarılı olur ve | İfade başarısız olur ve ne | İfade başarılı olur ve yalnızca |
Başarısız olur ve sonucu değer içermez. | Başarısız olur ve sonucu değer içermez. | İfade başarısız olur ve ne | İfade başarısız olur ve ne |
p ve q ile temsil edilen ifadeleri değerlendiren and ve or işleçleri için referans.
Matematik
Matematik ifadeleri ile sayısal değerlerle dört temel matematik işlemini (toplama, çıkarma, çarpma ve bölme) yapabilir ve dizeleri birbirine ekleyebilirsin. Tüm işleçler içek biçimini kullanır fakat + ve - ayrıca sayı değerleri için önek olarak da kullanılabilir.
Ayrıca atama işleçleri vardır, örneğin, set X += 10. Bunlar, işlemi yapıp ardından sonucunu atamayla, yani set X = X + 10 ile neredeyse aynıdır. Tek fark, buradaki X değerinin yalnızca bir kez değerlendirilmesidir. Atama işlecinin sonucu, değişkeni güncellemek için kullanılan değerdir.
Aşağıdaki tabloda tüm işleçler ve destekledikleri türler açıklanmaktadır.
| İşleç | Desteklenen Yerleşik Türler | Açıklama |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Bu işleçle toplama ve atamayı aynı işlemde kullanarak bir değişkenin değerini güncelleyebilirsin. |
|
| Bu işleçle çıkarma ve atamayı aynı işlemde kullanarak bir değişkenin değerini güncelleyebilirsin. |
|
| Bu işleçle çarpma ve atamayı aynı işlemde kullanarak bir değişkenin değerini güncelleyebilirsin. |
|
| Bu işleçle bölme ve atamayı aynı işlemde kullanarak bir tamsayı olan değişkenin değerini güncelleyebilirsin. Tamsayı bölme hakkında daha fazla bilgi için, bkz. int. |
Sorgu
Sorgu ifadeleri ? (sorgu) kullanır ve bir mantık değerinin true olup olmadığını kontrol eder. Aksi takdirde ifade başarısız olur. ? (sorgu) işleci sonek biçimini kullanır.
| p İfadesinin Sonucu | p? İfadesinin Sonucu |
|---|---|
| Başarılı olur ve |
| Başarısız olur ve sonuç değer içermez. |
p ile temsil edilen ifadeleri değerlendiren ? (sorgu) işleci için başvuru örneği.
Örneğin:
if (IsMorning?):
Say("Good Morning!")