Operatörler (Operators)
Son Ek
ifade++ ifade-- () [] ?[] . ?. !
Ön Ek
-ifade !ifade ~ifade ++ifade --ifade await ifade
Çarpımsal
* / % ~/
Toplama Çıkarma İşlemi
+ -
Kaydırma İşlemi
<< >> >>>
Bit Düzeyinde AND
&
Bit Düzeyinde XOR
^
Bit Düzeyinde OR
|
İlişkisel ve Tip Test İşlemleri
>= > <= < as is is!
Eşitlik
== !=
Mantıksal AND
&&
Mantıksal OR
||
if null
??
Koşul
ifade1 ? ifade2 : ifade3
Cascade
.. ?..
Atama
= *= /= += -= &= ^= vs.
Uyarı
Yukarıdaki tablo, sadece yardımcı bir rehber olarak kullanılmalıdır. Operatör önceliği ve birlikteliği, dilin gramerinde bulunan gerçekliğin bir yaklaşımıdır. Dart'ın operatör ilişkilerinin yetkili davranışını dil spesifikasyonundaki gramerde bulabilirsiniz.
Operatörleri kullandığınızda, ifadeler oluşturursunuz. İşte operatör ifadelerine örnekler:
Operatör Önceliği Örneği
Aritmetik Operatörler
+
Ekleme
-
Çıkarma
*
Çarpma
/
Bölme
~/
Bölme, Tam Sayı Sonucu Döndürür
%
Mod Alma
Örnek:
Ayrıca, artırma ve azaltma operatörlerini de destekler:
++var
var = var + 1 (ifade değeri var + 1)
var++
var = var + 1 (ifade değeri var)
--var
var = var - 1 (ifade değeri var - 1)
var--
var = var - 1 (ifade değeri var)
Örnek:
Eşitlik ve İlişkisel Operatörler
==
Eşittir
!=
Eşit değil
>
Büyüktür
<
Küçüktür
>=
Büyüktür veya eşittir
<=
Küçüktür veya eşittir
İki nesnenin x ve y, aynı şeyi temsil edip etmediğini test etmek için == operatörünü kullanın. (İki nesnenin tam olarak aynı nesne olup olmadığını bilmek istemeniz durumunda, sadece identical()
fonksiyonunu kullanın.) İşte == operatörünün nasıl çalıştığı:
x veya y null ise, her ikisi de null ise true döndürür, sadece biri null ise false döndürür.
x üzerinde y ile çağrılan == yönteminin sonucunu döndürür.
İşte eşitlik ve ilişkisel operatörleri kullanma örnekleri:
Tip Test Operatörleri
as, is ve is! operatörleri, tipleri çalışma zamanında kontrol etmek için kullanışlıdır.
as
Tip dönüşümü (ayrıca kütüphane öneklerini belirtmek için de kullanılır)
is
Nesnenin belirtilen tipe sahip olup olmadığı doğru ise
is!
Nesnenin belirtilen tipe sahip olmadığı doğru ise
Eğer nesnenin tipinin T
tipi olduğundan eminseniz, objeyi bu tipe dönüştürmek için as operatörünü kullanın. Örnek:
Eğer nesnenin tipinin T tipi olup olmadığını bilmiyorsanız, objeyi kullanmadan önce tipi kontrol etmek için is T'yi kullanın.
Not
Kod eşdeğer değildir. Eğer
calisan
null ise veyaKisi
değilse, ilk örnek bir istisna fırlatır; ikinci örnek ise hiçbir şey yapmaz.
Atama Operatörleri
Zaten gördüğünüz gibi, = operatörü ile değer atayabilirsiniz. Atanacak değişken null ise, ??= operatörünü kullanarak sadece atama yapabilirsiniz.
Zaten gördüğünüz gibi, = operatörü ile değer atayabilirsiniz. Atanacak değişken null ise, ??= operatörünü kullanarak sadece atama yapabilirsiniz.
=
*=
%=
>>>=
^=
+=
/=
<<=
&=
|=
-=
~/=
>>=
İşte bileşik atama operatörlerinin nasıl çalıştığı:
Bir operatör op için:
a op= b
a = a op b
Örneğin:
a += b
a = a + b
Aşağıdaki örnek, atama ve bileşik atama operatörlerini kullanır:
Mantıksal Operatörler
Mantıksal operatörleri kullanarak boolean ifadelerini tersine çevirebilir veya birleştirebilirsiniz.
!ifade
Takip eden ifadeyi tersine çevirir (false'u true'ya veya tam tersi)
||
Mantıksal OR (VEYA)
&&
Mantıksal AND (VE)
İşte mantıksal operatörleri kullanmanın bir örneği:
Bitwise (Bit Düzeyi) ve Kaydırma Operatörleri
Dart'ta sayıların bitlerini manipüle edebilirsiniz. Genellikle bu bitwise ve kaydırma operatörlerini tamsayılarla kullanırsınız.
&
AND
|
OR
^
XOR
~ifade
Bit düzeyinde (0'ları 1 yapar; 1'leri 0 yapar)
<<
Sola kaydırma
>>
Sağa kaydırma
>>>
İşaretsiz sağa kaydırma
Not
Büyük veya negatif operandlara sahip bitwise operasyonların davranışı platformlar arasında farklılık gösterebilir.
İşte bitwise ve kaydırma operatörlerini kullanmanın bir örneği:
Koşullu İfadeler
Dart dilinde, aksi takdirde if-else ifadeleri gerektirebilecek ifadeleri kısa bir şekilde değerlendirmenizi sağlayan iki operatör bulunmaktadır:
kosul ? ifade1 : ifade2
Eğer condition doğruysa, ifade1'i değerlendirir (ve değerini döndürür); aksi takdirde, ifade2'yi değerlendirir ve değerini döndürür.ifade1 ?? ifade2
Eğer ifade1 değeri null değilse, değerini döndürür; aksi takdirde, ifade2'yi değerlendirir ve değerini döndürür.
Cascade Notasyonu
Cascade (.., ?..) notasyonları, aynı nesne üzerinde bir dizi işlem yapmanıza olanak tanır. Örnek olarak:
Yukarıdaki örnek, aşağıdaki kodla eşdeğerdir:
Eğer cascade'in çalıştığı nesne null olabilirse, ilk işlem için bir null kontrolü cascade'i kullanın (?..).
Cascade kullanarak iç içe cascade'ler oluşturabilirsiniz.
Cascade'inizi bir işlevin gerçek bir nesne döndürdüğünden emin olun. Aksi takdirde, cascade void üzerine kurulamaz.
Not
Cascade notasyonu, kesin olarak "çift nokta" notasyonu olarak adlandırılmaz. Bu, sadece Dart dilinin bir parçasıdır.
Diğer Operatörler
Diğer operatörleri de başka örneklerde gördünüz:
()
Fonksiyon uygulama
Bir fonksiyon çağrısını temsil eder.
[]
Parantez erişimi
Overridable [] operatörüne çağrıyı temsil eder; örneğin: fooList[1], fooList'e int 1'i iletilir ve 1. indeksteki elemana erişir.
?[]
Koşullu parantez erişimi
[], ancak en sol operand null olabilir; örneğin: fooList?[1], fooList null değilse 1. indeksteki elemana erişir; aksi takdirde ifade null olarak değerlendirilir.
.
Üye erişimi
Bir ifadenin özelliğine atıfta bulunur; örneğin: foo.bar, foo ifadesinden bar özelliğini seçer.
?.
Koşullu üye erişimi
En sol operand null olabilir; örneğin: foo?.bar, foo null değilse foo'nun bar özelliğini seçer; aksi takdirde foo?.bar ifadesinin değeri null olur.
!
Null olmayan güvence operatörü
Bir ifadeyi altında yatan non-nullable türüne dönüştürür; dönüşüm başarısız olursa çalışma zamanında bir istisna fırlatır; örneğin: foo!.bar, foo'nun null olmadığını ve bar özelliğini seçer, ancak foo null ise çalışma zamanında bir istisna fırlatılır.
Last updated