DART-Üst Düzey Fonksiyonlar

DART-Üst Düzey Fonksiyonlar

DART-Üst Düzey Fonksiyonlar yazımla sizlerleyim. Bu yazımızda üç tane üst düzey olan fonksiyonuna değineceğiz. Çok fazla uzatmadan sizleri hemen fonksiyonlarımızla tanıştırıp ne iş yaptıklarını açıklayayım.

WHERE

Where ile listeden yeni bir liste yaratırken aynı zamanda listemizdeki elemanları belirlediğimiz şartlara uyuyor mu diye kontrol eder. Where metoduna biraz yakından bakmak için aşağıdaki görseli inceleyelim.

void main() { List<String> harfler= ["a","b","c","d"]; //STRING TIPTE LİSTE OLUŞTURDUK 
print(harfler.where(kontrol)); //LİSTEYİ WHERE İLE KONTROL EDİP EKRANA YAZDIRDIK
}
bool kontrol(String harf){ // BOOL TIPINDE KONTROL ADLI FONKSİYONU OLUŞTURUP,HARF ADINDA STRING PARAMETRE VERDIK
return harf== "a"; // LİSTEDE A HARFİ İLE EŞLEŞEN BİR HARF VAR MI DİYE SORUYORUZ EĞER VARSA
} // YANİ TRUE İSE YUKARIDA YAZMIŞ OLDUĞUMUZ PRİNT İLE EKRANA YAZDIRIYORUZ

Yukarıda ki kodlarımızı inceleyelim ve ne yaptığımızı anlamaya çalışalım.

  • İlk önce String tipte -int’de olabilir- bir liste oluşturduk ve içine string tipte veriler girdik.
  • Daha sonra main bloğunun dışına where metodunun gereksinimi olan bool tipinde bir fonksiyon oluşturuyoruz
  • Oluşturduğumuz bu fonksiyonun içinde bir kontrol oluşturuyoruz. -Bizim örneğimizde listeyi kontrol edip “a” harfine eşit olan harf var mı diye kontrol ediyoruz”
  • Son olarak main bloğunun içine kontrol şartlarını sağlayan liste varsa/oluştuysa ekrana yazması için print metodunun içersine alıyoruz.
  • harfler.where(kontrol); kod bloğu listeden yeni liste oluşturulurken listeyi kontrol ediyor başka bir deyişle listeyi süzüp,filtreliyor.
void main() {
List<int> sayilar = [1,2,3,4,5,6,7];
print(sayilar.where(kontrol));

}
bool kontrol(int sayi){
return sayi>3;
}
/*
* Diğer örnek kodlardaki işlemlerin aynısını yaptık
* değişen sadece liste tipi ve kontrol fonksiyonumuz oldu
* bu örnekte listede üçten büyük eleman var mı diye kontrol ettik
* ve varsa bunu ekrana yazdık.
* */

MAP

Map yapısı listeden yeni bir liste oluştururken var olan liste elemanları üzerinde değişiklik yapar. Where’de olduğu gibi Map’te yine bu işlem için bir fonksiyona ihtiyaç duyar. Lafı uzatmadan hemen örneğine geçelim ve örnek üzerinden anlama çalışalım.

void main() {
List<int> sayilar = [1,2,3,4,5,6,7];
print(sayilar.map(kontrol));

}
kontrol(int sayi){
return sayi+3;
}

Yukarıda ki kodlarımızı inceleyelim ve ne yaptığımızı anlamaya çalışalım.

  • int tipinde bir liste oluşturduk.
  • kontrol adında bir fonksiyon ve fonksiyon parametresi olarak int tipinde bir parametre oluşturduk
  • hemen sonra fonksiyonumuza”var olan liste elemanlarını değiştirmesini ve parametremize listedeki sayılara üç ekleyip ve bu sonucu döndürmesini “ söylüyoruz.
  • main bloğu içinde ise map yapısının bu kontrolu gerçekleştirip var olan listeyi güncellemesini ve yeni bir liste oluşturarak ekrana yazdırmasını istiyoruz.

toList()

Bu kod bloklarını çalıştırdıysanız eğer sonuçlar parantezler içerisinde gelmiş olmalı. Ancak biz tanımları yaparken listeden yeni bir liste oluştururlar demiştik. Kodlarımızda ilk başta liste oluştururken liste sembolü olan köşeli parantezleri kullandık ancak ne where ne de map ile çıktı alırken bu köşeli parantezler çıkmıyor ve dolayısıyla listeden yeni bir liste oluşturamamış oluyoruz. Bu sorunu gidermek için dart alet çantasında toList() bulunmakta.

void main() {
List<int> sayilar = [1,2,3,4,5,6,7];
print(sayilar.map(kontrol).toList()); //BU SATIRA DİKKAT!!!

}
kontrol(int sayi){
return sayi+3;
}
//ÇIKTISI= [4,5,6,7,8,9,10]

Foreach

Liste elemanlarımızı ekrana yazdırmak için kullanıyoruz diye açıklamıştık. Çok uzatmadan hemen örneğimizi yapalım.

void main() {
List<int> sayilar = [1,2,3,4,5,6,7];
sayilar.forEach((eleman)=>print(eleman));
}

Yukarıda ki kodlarımızı inceleyelim ve ne yaptığımızı anlamaya çalışalım.

  • sayilar adında int tipinde bir liste oluşturduk
  • foreach metodu geriye değer döndermeyen yani void tipinde bir fonksiyona ihtiyaç duyar
  • void tipinde anonim bir fonksiyon oluşturduk
  • anonim fonksiyonun görevi foreach ile tüm listeyi dolaşıp listenin elemanları eleman parametresine tek tek aktarıp ekrana yazdırmak.
void main() {
List<int> sayilar = [1,2,3,4,5,6,7];
sayilar.forEach(elemanYazdir);

}
elemanYazdir(eleman){
print(eleman);
}

Bilgisayar Programıcısı-AÖF Yönetim Bilişim Sistemleri/DART&FLUTTER

Bilgisayar Programıcısı-AÖF Yönetim Bilişim Sistemleri/DART&FLUTTER