Dart Dersleri #15 - Fonksiyonlar

Fonksiyonlar

Bu dersimizde dart programlama dilinde fonksiyon nedir sorusuna cevap bulmaya ve örneklerle açıklamaya çalışacağız.

 

Fonksiyon nedir?

Fonksiyonlar diğer programlama dillerinde de olduğu gibi, dart dilinde de kullanılan temek yapılardan biridir.
Fonksiyonlar temelde belirli bir amaç için oluşturulmuş, tekrar tekrar kullanılabilen ve mantıksal bütünlük gösteren kod bloklarıdır.

Fonksiyonlar sayesinde yazılan kodun okunabilirliği kolaylaşır, üzerinde değişiklik yapmak basittir, tekrar tekrar çağırılabildiği için kod kalabalığını azaltır.

 

Fonksiyon tanımlama

Bir fonksiyonu kullanmadan önce, tanımlamak gerekir. Tanımlanacak fonsiyon basit bir şekilde isimlendirilir daha sonra da kullanılacağı yerde çağırılır.

void printName() {
  print('yazilimblogu.com');
}
printName fonksiyonu tanımı. void: geriye değer döndürmeyeceğini belirtir.
String getName() {
  return 'yazilimblogu.com';
}
getName fonksiyonu tanımı. String: fonksiyon çalıştıktan sonra ne tipte değer döneceğini belirtir.

Üstteki printName fonksiyonu çağırıldığı anda console'a "yazilimblogu.com" yazacaktır.

getName fonksiyonu ise çağırıldığı yere "yazilimblogu.com" String değerini döner.

 

Fonksiyon çağırma

Tanımlanan fonsiyon bloğunun çalıştırılması için çağırılması gerekir.

main(){
  printName(); // print: "yazilimblogu.com"
}

printName() {
  print('yazilimblogu.com');
}
main fonksiyonu altında printName fonksiyonunun çağırılması.
 

Değer döndürmeyen fonsiyonlar

Bazı fonksiyonlar çağırıldıkları yere bir değer dönüşü yapmaz. Bu fonksiyonların dönüş tipleri void olarak belirtilir.

main(){
  worker(); // void
}

worker() {
  var mult = 3 * 5;
    print(mult);
}
Sadece 3 ve 5'i çarpıp console'a yazar.
 

Değer dönen fonksiyonlar

void harici bir dönüş tipine sahip olan fonksiyonlardır.

main(){
  var name = getName();
  print(name); // "yazilimblogu.com"
}

String getName() {
  return 'yazilimblogu.com';
}
Fonksiyon bloğu çalıştıktan sonra çağırıldığı yere bir String değer döner.
 

Parametre alan fonksiyonlar

Fonksiyonlar çağırıldığı yerden değer alabilirler.

main() {
   var testString = testFunc(123, "Emre Akçadağ");
   print(testString);
}

String testFunc(int n1, String s1) {
   print(n1);
   print(s1);
   return "Hello $s1";
}

testFunc fonksiyonu bir int ve bir String parametre alacak şekilde oluşturulmuştur. Çağırıldığı yerde bu değerlerin verilmesi zorunludur.

Üstteki kod bloğunun çıktısı aşağıdaki gibi olacaktır.

123
"Emre Akçadağ"
"Hello Emre Akçadağ"
 

Opsiyonel parametreli fonksiyonlar

Opsiyonel parametre tanımı yapmak için [ ] kullanılır. İstenilen parametreler fonsiyon tanımı sırasında köşeli parantezler arasında tanımlanır.

void main() {
  print(getNumbers(5)); // çıktı: 7
}

int getNumbers([int num1, int num2]) {
  var a = 1;
  var b = 1;
  if (num1 != null) {
    a += num1;
  }

  if (num2 != null) {
    b += num2;
  }

  return a + b;
}
Fonksiyon çağırılırken gönderilen parametreler, opsiyonel parametrelere sırasıyla atanır.
 

İsimli opsiyonel parametreli fonksiyonlar

İsimli opsiyonel parametre tanımı yapmak için { } kullanılır. İstenilen parametreler fonsiyon tanımı sırasında süslü parantezler arasında tanımlanır. Çağırıldığı yerde parametrelere değer atanırken; parametre isimleri kullanılır.

void main() {
  printAllNames(name3: 'yazilimblogu', name2: 'Emre'); // çıktı: [null, Emre, yazilimblogu]
}

printAllNames({String name1, String name2, String name3}) {
  print([name1, name2, name3]);
}
Fonksiyon'a parametre verilirken, herhangi bir sıra gözetmeksizin istenilen parametre atamasıyla başlanabilir.
 

Varsayılan değere sahip opsiyonel parametreli fonksiyonlar

Opsiyonel parametrelere başlangıç değeri atanabilir. Bu başlangıç değerleri sadece o parametreye değer atanmadığı zaman kullanılabilir.

void main() {
  topla(15, param3: 20); // çıktı: 54
}

void topla(int param1, {int param2 = 19, int param3 = 1}) {
  print(param1 + param2 + param3);
}
Fonksiyon çağırıldığında param2'ye değer atanmadığı için, param2 değeri 19 olarak kabul edilerek fonksiyon tamamlanır.
 

Lambda fonksiyonlar

Oldukça basit bir kullanımla değer döndürmeyi sağlayan fonksiyonlardır. return anahtar kelimesi yerine => kullanılır.

void main() {
  print(getMap()['name']);
}

Map getMap() => {
      "name": "yazilimblogu.com",
      "lesson": "Dart - Functions"
    };
getJson fonksiyonu lamdba syntax'ı ile basit bir şekilde -return ve süslü parantez kullanmadan- Map değişkeni döndürür.

Bu derste Dart dilinde Fonksiyonlar konusunu örneklendirerek anlatmaya çalıştık.

Bir sonraki derste görüşmek üzere!

Sorularınızı ve isteklerinizi yorum bölümünden iletebilirsiniz.

Kaynak:

Bu postu paylaş:

0 yorum

Yorum yapmak için giriş yapmanız gerekmektedir. Giriş yap
Henüz hesabınız yoksa 20 saniyenizi ayırıp kayıt olabilirsiniz. Kaydol