Merhabalar.

Dart eğitimlerimize Lambda fonksiyon kavramıyla devam ediyoruz.

Normalde fonksiyonları öğrenirken fonksiyonları geriye değer döndüren ya da döndürmeyen olarak ikiye ayırmıştık aynı zamanda fonksiyonlarımızın bir tanımlayıcı ismi oluyordu.

İşte tamda bu noktada devreye isimsiz fonksiyonlar diyebileceğimiz lambda fonksiyonlar giriyor.

Hemen bir örnekle anlamaya çalışalım.

void main(){
  
}

void isimYazdir(){
  print("Murat Bilginer");
}

Elimizde böyle bir fonksiyon olduğunu düşünelim.

İşte biz bu fonksiyonu isim olarak bir metod içinde yazıp daha sonra bunu Function veri tipinden bir değere atayıp istediğimiz zaman kullanabiliriz.

Bunu şöyle yapardık.

void main(){

  var f1 = (){
    print("Murat Bilginer");
  };
  
}

void isimYazdir(){
  print("Murat Bilginer");
}
var f1 = (){
    print("Murat Bilginer");
  };

burada gördüğümüz şekilde yazabiliriz.

Bu tip isimsiz fonksiyonlar flutter kodlama yaparken çok işimize yarayacak ve sıklıkla kullanacağız.

Bir metodun çalışmasını istediğimiz yerde metodu farklı yerde yazıp ismiyle çağırmak yerine bu tip bir kullanım yapabiliriz.

() {

};

Şu gördüğümüz yapı isimsiz bir fonksiyondur.

Fonksiyonu var tipli bir değişkene atayabileceğimiz gibi direkt function tipinde bir değişkene atayabiliriz.

void main(){

  var f1 = (){
    print("Murat Bilginer");
  };
  
  Function f2 = (){
    print("Meryem Yalvaç");
  };

}

void isimYazdir(){
  print("Murat Bilginer");
}
Function f2 = (){
    print("Meryem Yalvaç");
  };

Bu şekilde yazılabilir.

Bu tip bir fonksiyonu bir değere atamadan da yazabiliriz.

void main(){

  var f1 = (){
    print("Murat Bilginer");
  };

  Function f2 = (){
    print("Meryem Yalvaç");
  };

  (){
    print("Murat Bilginer");
  };

}

void isimYazdir(){
  print("Murat Bilginer");
}
(){
    print("Murat Bilginer");
  };

Ama bu haliyle direkt olduğu yerde çalışmayacaktır. Bunun için fonksiyon gereken yerde yazılabilir.

İsimsiz şekilde yazılıp var ya da function değişkene atanmış bir isimsiz fonksiyonu değişken ismiyle erişebiliriz. Tabii ki parantezleri unutmuyoruz.

void main(){

  var f1 = (){
    print("Murat Bilginer");
  };

  Function f2 = (){
    print("Meryem Yalvaç");
  };

  (){
    print("Murat Bilginer");
  };

  f1();
  f2();

}

void isimYazdir(){
  print("Murat Bilginer");
}
  f1();
  f2();
H:\Dart_Tutorial\hello_dart\bin>dart 26_lambda_functions.dart
Murat Bilginer
Meryem Yalvaç

Şimdi bu tip bir fonksiyonu parametre alan şekliyle yapalım.

void main(){

  var f1 = (){
    print("Murat Bilginer");
  };

  Function f2 = (){
    print("Meryem Yalvaç");
  };

  (){
    print("Murat Bilginer");
  };

  f1();
  f2();
  
  var f3 = (int a, int b){
  
    int toplam = a + b;
    return toplam;
    
  };

  print(f3(4,6));
}

void isimYazdir(){
  print("Murat Bilginer");
}
 var f3 = (int a, int b){
  
    int toplam = a + b;
    return toplam;
    
  };

  print(f3(4,6));
H:\Dart_Tutorial\hello_dart\bin>dart 26_lambda_functions.dart
Murat Bilginer
Meryem Yalvaç
10

Fat Arrow Function

Dart’ta tek satırdan oluşan fonksiyonlarımızı daha kolay yazabilmek için Fat Arrow dediğimiz fonksiyon yapıları kullanılır.

void isimYazdir(){
  print("Murat Bilginer");
}

Bu fonksiyon gördüğünüz gibi tek satır bir işlemden oluşuyor şimdi bunu fat arrow işlemi ile yazmaya çalışacağız.

void main(){

  var f1 = (){
    print("Murat Bilginer");
  };

  Function f2 = (){
    print("Meryem Yalvaç");
  };

  (){
    print("Murat Bilginer");
  };

  f1();
  f2();

  var f3 = (int a, int b){

    int toplam = a + b;
    return toplam;

  };

  print(f3(4,6));
  
  var f5 = () => print("Murat Bilginer");
  
}

void isimYazdir(){
  print("Murat Bilginer");
}
var f5 = () => print("Murat Bilginer");

Fat arrow ismi => bu işaretten gelir.

Bu işaret return ifadesini içinde barındırır. O yüzden geriye değer döndürecek bir fonksiyon yazacaksak bunun için return yazmaya gerek yoktur.

() parantezler içine alınabilecek parametreler varsa yazılır. Yoksa boş bırakılır. Sonrasında () => ok işareti kullanılır.

Sonrasında ilgili işlem yapılır.

Geriye değer döndüren parametreli bir ifadeyi fat arrow kullanarak yazalım.

void main(){

  var f1 = (){
    print("Murat Bilginer");
  };

  Function f2 = (){
    print("Meryem Yalvaç");
  };

  (){
    print("Murat Bilginer");
  };

  f1();
  f2();

  var f3 = (int a, int b){

    int toplam = a + b;
    return toplam;

  };

  print(f3(4,6));

  var f5 = () => print("Murat Bilginer");
  
  var f6 = (int a, int b) => a + b;
  
  f5();
  print(f6(3,7));
}

void isimYazdir(){
  print("Murat Bilginer");
}
var f5 = () => print("Murat Bilginer");
  
  var f6 = (int a, int b) => a + b;
  
  f5();
  print(f6(3,7));
H:\Dart_Tutorial\hello_dart\bin>dart 26_lambda_functions.dart
Murat Bilginer
Meryem Yalvaç
10
Murat Bilginer
10

Bu şekilde kullanılabilir.

Bu yazımda bu kadardı.

Bir sonraki yazımda görüşmek üzere.


What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.