DART Programlama Dili Temelleri: Operatör Kavramı Nedir?

Vuslat S. Emre
HardwareAndro
Published in
5 min readAug 12, 2020

Herkese merhaba, bu yazımda Dart dilinde kullanılan operatörler ve işlevlerine değiniyor olacağım. Hazırsanız başlayalım…

Operatör kavramı nedir?

Programlama dillerinde tek başlarına herhangi bir anlamı olmayan ancak programın işleyişine katkıda bulunan karakter ya da karakter topluluklarına operatör denilmektedir. Operatörlerin etki ettikleri sabit ya da değişkenlere ise operand denir.

Örneğin; a+b ifadesinde + işareti bir operatördür. a ve b ise operanddır.

1-Aritmetik Operatörler (Arithmetic Operators)

Toplama Operatörü(+): Sayısal değerleri toplamak için kullanılıyor. Sayısal değerin integer yada double tipinde olması önemli değildir. Eğer double tipindeki bir sayı ile integer tipindeki bir sayıyı toplamak istersek, Dart, tip dönüşümünü(typecast) otomatik olarak bizim için yapacak ve double tipinde sonucu verecektir.

Assert deyimi yararlı bir hata ayıklama aracıdır ve boole koşullarını test etmek için kullanılır. Bir boolean koşulu yanlışsa, assert ifadesi normal yürütmeyi bozar. Boole ifadesi doğruysa, kod normal şekilde çalışmaya devam eder. assert kavramı nedir? üzerinden farklı örneklere de ulaşabilirsiniz.

assert(7 + 9 == 16);

Ayrıca toplama operatörünü , iki String ifadeyi birleştirmek için de kullanıyoruz. Yani “Dart”+”Dili” şeklinde bir kullanım yaparsak, bu String ifadeler birleşecek ve “DartDili” şeklinde bir sonuç elde edeceğiz.

Çıkarma operatörü(-): Çıkarma işlemleri için kullanıyoruz. Toplama operatöründen farkı ise çıkarma operatörlerini String ifadelerde kullanamıyoruz. Yukarıda vermiş olduğumuz DartDili için “Dart”-”Dili” şeklinde bir kullanım söz konusu değildir.

assert(9–3 == 6);

Çarpma operatörü(*): Sayısal değerlerin çarpımında kullanılan operatördür. Toplama operatöründe olduğu gibi integer ve double değerleri birlikte kullanabiliyoruz. Tip dönüşümünü Dart dili bizim için hallediyor.

assert(5 * 8 == 40);

Bölme operatörü(/): Sayısal ifadelerin bölünmesi için kullanılmaktadır. Tip dönüşümü yine otomatik gerçekleştiriliyor. Bundan dolayı int ve double tipindeki sayıları birlikte kullanabiliyoruz.

assert(5 / 2 == 2.5); // Sonuç double tipinde

Sonucun tam sayı kısmını döndüren bölme operatörü(~/): Buna isim bulma konusunda kararsız kalınca, onu açıklamaya karar verdim. İki sayıyı böldüğümüz zaman tam bir sonuç elde etmeyebiliriz. Örneğin bir integer sayıyı double sayıya bölmeye çalışırken tam sayı bir cevap bulamayabiliriz. Bundan dolayı eğer sonucun böyle olacağını düşünüyorsak ve bize tam sayı kısmı lazım ise kullanabileceğimiz bir operatördür.

assert(7 ~/ 2 == 3); // Sonuç integer tipinde

Mod alma operatörü(%): İki sayının birbirine bölümünden elde edilen kalan değerini bulmak için kullanıyoruz.

assert(5 % 2 == 1);

Not : “+” ve “ -” operatörlerini, bir sayının değerini artırmak veya azaltmak için kullanabiliriz. Örneğin;

var a = 23;
a++ // a’nın değeri 1 artacak ve 24olacak.
a- -// a’nın değeri 1 azalacak ve 23olacak.

2.İlişkisel Eşitlik Operatörleri(Equality and relational operators)

Eşitlik operatörü( == ): 2 değerin eşitliğini kontrol etmek için kullanıyoruz.

  • İşlem sonucunda boolean değer dönmektedir.
  • Eşitlik sağlanıyorsa eğer true(doğru), sağlanmıyorsa ise false(yanlış) değeri döndürecektir.

Eşit değildir operatörü( != ): 2 değerin eşit olmama değerini kontrol etmek için kullanıyoruz.

  • Eşitlik sağlanmıyorsa true(doğru), sağlanıyorsa eğer false(yanlış) değeri döndürecektir.

Büyüktür operatörü( >): Eşitliğin sol tarafında yer alan değerin, eşitliğin sağındaki değerden büyük olup olmadığını kontrol eder.

  • Eğer eşitlik şartı sağlanıyorsa true(doğru) değeri, sağlanmıyorsa true(doğru) değeri döner.

Küçüktür operatörü( < ): Eşitliğin sol tarafında yer alan değerin, eşitliğin sağındaki değerden küçük olup olmadığını kontrol eder.

  • Eğer eşitlik şartı sağlanıyorsa true(doğru) değeri, sağlanmıyorsa true(doğru) değeri döner.

Eşit veya büyüktür operatörü( >= ): Eşitliğin solundaki değerin eşitliğin sağındaki değerden büyük olup olmadığını kontrol eder.

  • Eğer eşitlik şartı sağlanıyorsa true(doğru) değeri, sağlanmıyorsa true(doğru) değeri döner.

Eşit veya küçüktür operatörü( <= ): Eşitliğin solundaki değerin eşitliğin sağındaki değerden küçük veya eşit olup olmadığını kontrol eder.

  • Eğer eşitlik şartı sağlanıyorsa true(doğru) değeri, sağlanmıyorsa true(doğru) değeri döner.

3.Atama Operatörleri(Assignment Operators)

Atama operatörleri yukarıda verildiği gibidir. Örnek bir kullanıma bakacak olursak;

int a = 9;
double b = 14.0;
b -= a; // b değerinden a değerini çıkartıp sonucu tekrar b değişkenine atıyor.

Başka bir örnek daha yapacak olursak;

var a = 2; // 
a *= 5; // a = a * 5
assert(a == 10);

4.Mantıksal Operatörler(Logical Operators)

!ifade: Verilen bir ifadeyi doğruysa(true ise) yanlışa(false durumuna), yanlış ise doğru durumuna çeviriyor.

Mantıksal VEYA(||): İki boolean ifadenin mantıksal doğruluğunu kontrol etmek için kullanıyoruz. Örnek üzerinde açıklayacak olursak;

var a = 3;
var b = 7;
if(a < 4|| b>15){…}

şeklinde bir if koşulumuz olsun. Burada yapılan işlemde, a değerinin 4'den küçük olma durumuna bakılıyor. Eğer a değeri küçükse true dönecektir Sonra b değerinin 15'den büyük olma durumuna bakılıyor eğer büyükse true dönecektir.Veya operatörümüz de bunları karşılatıracak. a ile b nin karşılaştırmalarından herhangi biri doğruysa işlemi true kabul edip ona göre işlem yapacak. Örneğimizde a < 4 karşılaştırması true, b > 15 karşılaştırması false değer dönecek. Veya operatörü bu noktada herhangi birinin true olması durumuna baktığı için if koşulunun içerisinden true değer çıkartacak. Bu karşılaştırmaları ikiden fazla değer arasında yapılabilir.

Mantıksal VE(&&):Veya operatörü ile aynı mantıka çalışıyor. Tek farkı tüm karşılaştırma ifadelerinin doğru olması gerekmektedir. Karşılaştırma sonuçlarından herhangi birisi false dönerse, if koşulu false olarak çalışacaktır.

5.Bit Tabanlı Operatörler(Bitwise and Shift Operators)

Ve(&): İki değerin bit düzeyinde karşılaştırmasını yaparak her bir bit değerini karşılıklı olarak karşılaştırır ve bu karşılaştırmanın her iki tarafı da eşitse bir çarpım mantığıyla sonucu döndürür.

Veya(|): İki değerin bit düzeyinde bir karşılaştırmasını yapıyoruz ancak bunun doğruluk tablosunu oluştururken, karşılaştırdığımız iki bitsel ifadenin her basamağındaki değerlerden birinin 1 olması durumuna göre çıkarım yapıyoruz. Buradaki veya durumu en az koşulu sağlamak için ifade edilebilir

XOR(^):Özel veya, yalnızca girişler farklı olduğunda doğru çıktı veren mantıksal bir işlemdir.

Sağa(>>) ve Sola(<<) Kaydırma Operatörleri, bit değerlerinin basamak mantığıyla sağa yada sola kaydırılması işlemi için kullanılır.

6.Tip Test Operatörleri(Type Test Operator)

as: Projemize dahil etmek istediğimiz kütüphanelere ön ek belirtmek için kullanılır.

Örneğin, projemizde merhaba.dart adında bir sınıfımız olsun
import ‘merhaba.dart’ as onEk; // bu şekilde import edersek,

Projemiz içerisinde bu sınıfı şu şekilde kullanabiliyoruz;
onEk.SınıfAdi yeniNesne = onEk.SınıfAdi();

is: Proje içerisinde kullanılan bir nesnenin diğer bir nesnenin tipinde olup olmadığını kontrol eder. Genelde proje içerisinde türettiğimiz nesnelerin hangi sınıf tipinde olduğunu kontrol etmek için kullanılır.

(nesne is Sınıf) // nesnemiz Sınıf tipindeyse true, değilse false değer dönecek.

!is: Kullanımı is ile aynı fakat tersine çalışıyor ve nesnemiz belirttiğimiz Sınıf tipinde değilse true, belirttiğimiz Sınıf tipindeyse false değer dönüyor.

Elimden geldiğince konuyu aktarmaya çalıştım. Eksik noktaları varsa lütfen belirtmekten, yanlış bir yer olduysa güncellemekten çekinmeyiniz. Okuduğunuz için teşekkür ederim. Görüşmek üzere :)

--

--

Vuslat S. Emre
HardwareAndro

a young woman who writes about life and what she has learned • software developer • https://bento.me/vuslat