Dart Dilinde Operatörler ve İşlevleri
Dart dilinde operatörler, aritmetik (arithmetic), ilişkisel eşitlik (equality and relational), atama (assignment), mantıksal (logical), karşılaştırma (conditional), tip test (type test), bit tabanlı (bitwise and shift) ve kademeli (cascade) olmak üzere 8 alt başlıkta derlenmiştir.
Dart Dilinde Operatörler
Programlama dillerinde operatör, tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarıdır. Operatörlerin etki ettikleri sabit ya da değişkenlere ise operand denir.
Alt başlıklar halinde dart dilinde operatörleri tanıyalım:
Aritmetik Operatörler (Arithmetic Operators)
Operatör | Anlamı | Örnek |
---|---|---|
+ | toplama | 7 + 3 = 10 |
– | çıkarma | 7 – 3 = 4 |
* | çarpma | 7 * 3 = 21 |
/ | bölme | 7 / 3 = 2.33 |
~ / | tam sayı dönen bölme | 7 ~/ 3 = 2 |
% | mod alma | 7 % 3 = 1 |
İlişkisel Eşitlik Operatörleri (Equality and relational operators)
Operatör | Anlamı | Örnek |
---|---|---|
== | eşittir | 7 == 3 (false/yanlış) |
!= | eşit değildir | 7 != 3 (true/doğru) |
> | büyüktür | 7 > 3 (true/doğru) |
< | küçüktür | 7 < 3 (false/yanlış) |
>= | eşit veya büyük | 7 >= 3 (true/doğru) |
<= | eşit veya küçük | 7 <= 3 (false/yanlış) |
Atama Operatörleri (Assignment Operators)
Operatör | Anlamı | Örnek | Çıktı |
---|---|---|---|
= | değer atar | x = 3 | 3 |
??= | Yalnızca atanan değişken null değerine sahipse değer atar | 7 ??= 3 Null ??= 3 | 7 3 |
+= | Mevcut değere ekler | 7 += 3 | 10 |
-= | Mevcut değerden çıkarır | 7 -= 3 | 4 |
*= | Mevcut değerle çarpılır | 7 *= 3 | 21 |
/= | Mevcut değerden böler | 7 /= 3 | 2.33 |
Tekli Operatörler (Unary Operators)
Örnek olarak int x, y, a, b = 10; değerinden gidelim:
Operatör | Anlamı | Örnek | Çıktı |
---|---|---|---|
++ (önünde) | Artıştan sonraki değer | print (x++) | 10 |
++ (ardında) | Artıştan önceki değer | print (++y) | 11 |
— (önünde) | Azalmadan sonraki değer | print (a–) | 10 |
— (ardında) | Azalmadan önceki değer | print (–b) | 9 |
Mantıksal Operatörler (Logical Operators)
Operatör | Anlamı | Örnek | Çıktı |
---|---|---|---|
! | Doğruyu yanlışa veya tam tersine değiştirir | if ( !(7 > 3) ) | false (yanlış) |
&& | Mantıksal VE (her iki taraf da doğruysa doğrudur) | if ((7 > 3) && (3 < 7)) if ((7 > 3) && (3 > 7)) | true (doğru) false (yanlış) |
|| | Mantıksal VEYA (en az biri doğruysa doğrudur) | if ((7 > 3) || (3 > 7)) if ((7 < 3) || (3 > 7)) | true (doğru) false (yanlış) |
Tip Test Operatörleri (Type Test Operator)
Operatör | Anlamı | Örnek |
---|---|---|
as | Typecast | import ‘travelpoints.dart’ as travel; |
is | Nesne belirtilen türü içeriyorsa, doğru olarak değerlendirilir | if (points is Places) (= true) |
is! | Nesne belirtilen türü içeriyorsa false olarak değerlendirilir (genellikle kullanılmaz). | if (points is! Places) (= false) |
Bit Tabanlı Operatörler (Bitwise and Shift Operators)
Düşük seviyeli veri manipülasyonu yapmadığınız sürece bu operatörleri asla kullanmayacaksınız, zaten Flutter’da da böyle bir şey asla kullanılmaz.
Operatör | Anlamı | Örnek | Çıktı |
---|---|---|---|
& | Bitsel VE | x = 3 | 3 |
| | Bitsel VEYA | 7 ??= 3 Null ??= 3 | 7 3 |
^ | Bitsel XOR | 7 += 3 | 10 |
~ | Bitsel tamamlayıcı | 7 -= 3 | 4 |
<< | Sola kaydırma | 7 *= 3 | 21 |
>> | Sağa kaydırma | 7 /= 3 | 2.33 |
Karşılaştırma Operatörü (Conditional Operator)
Koşul operatörü, if-else ifadesinin kısaltması olarak kabul edilir. Aynı zamanda Ternary Operator olarak da adlandırılır.
Operatör | Anlamı | Örnek | Çıktı |
---|---|---|---|
durum ? değer1: değer2 | durum true olarak değerlendirilirse, değer1 değerini döndürür. durum false olarak değerlendirilirse, değer2 değerini döndürür. | (7 > 3) ? true : false (7 < 3) ? true : false | true false |
Kademe Operatörü (Cascade Operator)
Kademeli operatör, ardışık biçimde yazılmış çeşitli ifadelerin sözdizimini güzelleştirmeye yardımcı olur.
Operatör | Anlamı |
---|---|
.. | Kademeli gösterim çift nokta (..) ile temsil edilir ve aynı nesne üzerinde bir dizi işlem yapılmasını sağlar. |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// Dart Dilinde Operatörler ve İşlevleri // kademeli operatör kullanmayan örnek kod void noCascade() { var sb = StringBuffer(); sb.write('hello\n'); sb.write('world!\n'); sb.write('a\n'); sb.write('b\n'); sb.write('c\n'); sb.write('d\n'); sb.write('e\n'); print(sb.toString()); } // kademe operatörünü kullanan örnek kod void cascade() { print((StringBuffer() ..write('hello\n') ..write('world!\n') ..write('a\n') ..write('b\n') ..write('c\n') ..write('d\n') ..write('e\n')) .toString()); } main(List<String> args) { noCascade(); cascade(); } |
Dart dilinde operatörler ve işlevleri ile ilgili örnek kodlar: DartPad