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'); }
String getName() { return 'yazilimblogu.com'; }
Ü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'); }
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); }
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'; }
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; }
İ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]); }
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); }
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" };
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: