Dart, genellikle web ve mobil uygulama geliştirmek için kullanılan, açık kaynaklı ve modern bir programlama dilidir. Dart’ın güçlü yanlarından biri, fonksiyonlar aracılığıyla modüler ve yeniden kullanılabilir kod yazmaya olanak tanımasıdır. Bu makalede, Dart programlama dilinde fonksiyon kullanımına dair temel bilgileri inceleyeceğiz.
Fonksiyon Nedir?
Fonksiyonlar, bir veya birden fazla işlemi gerçekleştiren, adlandırılmış ve parametre alabilen kod bloklarıdır. Dart’ta fonksiyonlar, belirli bir işlevi yerine getirmek için kullanılır ve kodunuzu daha düzenli ve okunabilir hale getirmenin yanı sıra, tekrar kullanılabilirliği artırır.
Dart Programlarının Temel Yapısı
Dart programları genellikle main
adlı özel bir fonksiyon ile başlar. main
fonksiyonu, Dart programının yürütme işlemine başlamak için başlangıç noktasını temsil eder. İşte basit bir Dart programının temel yapısı:
1 2 3 4 5 6 | void main() { // Program buradan başlar print("Merhaba, Dart!"); } |
Yukarıdaki örnekte main
fonksiyonu, programın başlangıcını belirtir ve “Merhaba, Dart!” mesajını ekrana yazdırır. Dart programlarının bu temel yapıya sahip olması, kodun düzenli ve anlaşılır olmasına katkı sağlar.
Temel Fonksiyon Tanımı
Dart’ta fonksiyonlar, functionName
şeklinde adlandırılır ve parametre alabilir veya almayabilir. İşte temel bir fonksiyon tanımının örneği:
1 2 3 4 5 | void merhabaDunya() { print("Merhaba, Dünya!"); } |
Bu örnek, “merhabaDunya” adlı bir fonksiyonu tanımlar ve bu fonksiyon çağrıldığında “Merhaba, Dünya!” mesajını ekrana yazdırır. void
ifadesi, fonksiyonun bir değer döndürmediğini belirtir.
Parametreli Fonksiyonlar
Fonksiyonlar, ihtiyaç duydukları değerleri parametre olarak alabilirler. Örneğin, bir sayının karesini alan bir fonksiyon şu şekilde tanımlanabilir:
1 2 3 4 5 | int kareAl(int sayi) { return sayi * sayi; } |
Bu fonksiyon, bir tamsayı parametresi alır (sayi
) ve bu sayının karesini döndürür. Fonksiyonları parametrelerle kullanmak, genişletilebilir ve esnek kod yazmanıza yardımcı olabilir.
Basit bir şekilde fonksiyon ve parametrelerini nasıl tanımlayacağımızı gösterdik. Şimdi daha detaylı olarak nasıl tanımlama nasıl yaparız bunu inceleyeceğiz.
Parametreli Fonksiyon Tanımı
Bir fonksiyon, belirli değerleri alarak çalışabilir. Parametreli bir fonksiyon tanımı şu şekildedir:
1 2 3 4 5 6 7 8 9 10 11 | void main(){ selam("Hayri",28); } void selam(String ad, int yas) { print("Merhaba, $ad! Yaşınız: $yas"); } |
Bu örnekte, selam
fonksiyonu, biri String
diğeri int
türünde iki parametre alır. Fonksiyon içinde bu parametreleri kullanarak bir selam mesajı oluşturulur.
Parametrelerde Veri Tipi Belirtme
Dart’ta parametrelere veri tipi belirtmek istiyorsanız, şu şekilde yapabilirsiniz:
1 2 3 4 5 6 7 8 9 10 11 | void main(){ selam("Hayri",28); } void selam(String ad, int yas) { print("Merhaba, $ad! Yaşınız: $yas"); } |
Bu, ad
parametresinin String
ve yas
parametresinin int
türünde olduğunu belirtir.
İsimli Parametreler
Dart dilinde fonksiyonlara isimli parametreler ekleyerek, fonksiyon çağrılarını daha esnek ve okunabilir hale getirebilirsiniz. İsimli parametreler, fonksiyon çağrısı sırasında parametre isimleri ile birlikte değerlerinizi belirlemenizi sağlar. İşte bir örnek:
1 2 3 4 5 6 7 8 9 10 11 12 13 | void main(){ selam(ad: "Ahmet"); // "Merhaba, Ahmet! Yaşınız: 20" selam(ad: "Hayri", yas: 25); // "Merhaba, Ayşe! Yaşınız: 25" selam(yas: 30); // "Merhaba, null! Yaşınız: 30" } void selam({String? ad, int yas = 20}) { print("Merhaba, $ad! Yaşınız: $yas"); } |
Bu örneklerde görüldüğü gibi, isimli parametreler kullanıcıya hangi parametrenin hangi değeri aldığını açıkça gösterir ve fonksiyon çağrısını anlamayı kolaylaştırır.
Yukarıdaki örnekte, selam
fonksiyonu iki isimli parametre alır: ad
ve yas
.
{String? ad}
: Bu isimli parametre,ad
ismiyle fonksiyon çağrısı sırasında belirtilen değeri alır.String?
türü, bu parametrenin birString
veyanull
değeri alabileceğini belirtir. Bu sayedead
parametresi opsiyonel hale gelir.int yas = 20
: Bu isimli parametre iseyas
ismiyle çağrılan değeri alır. Ancak, eğer çağrı sırasında bu parametre belirtilmezse, varsayılan olarak20
değerini alır.
Bu isimli parametreler sayesinde fonksiyon çağrıları daha açıklayıcı hale gelir ve kullanıcılar istedikleri parametrelere odaklanabilirler.
Zorunlu Parametreler
1 2 3 4 5 6 7 8 9 10 11 12 13 | void main(){ //selam(ad: "Ahmet"); // Hata verir. selam(ad: "Hayri", yas: 25); // "Merhaba, Ayşe! Yaşınız: 25" selam(yas: 30); // "Merhaba, null! Yaşınız: 30" } void selam({String? ad, required int yas}) { print("Merhaba, $ad! Yaşınız: $yas"); } |
Zorunlu parametreler, fonksiyonun çağrıldığında bir değer almak zorunda olan parametrelerdir. Yukarıdaki örnekte, yas
parametresi required
anahtar kelimesi ile zorunlu hale getirilmiştir. Bu, selam
fonksiyonunu çağıran herkesin bir yaş değeri belirtmesi gerektiği anlamına gelir.
Dolayısıyla, yukarıdaki örneklerde selam(ad: "Hayri", yas: 25);
gibi bir fonksiyon çağrısında yas
parametresinin belirtilmesi zorunludur. Aksi takdirde, hata alırsınız.
Bu kullanım, fonksiyonunun belirli bir durumda belirli bir parametreyi zorunlu kılmanız gerektiğinde oldukça yararlıdır.
Arrow Fonksiyonlar
Arrow fonksiyonları, kısa ve okunabilir fonksiyon tanımlamak için kullanılır. Özellikle tek bir ifade döndüren fonksiyonları tanımlamak için uygundur. Arrow fonksiyonları şu şekilde tanımlanır:
1 2 3 4 5 6 7 8 | void main() { print("Toplam: ${topla(5, 3)}"); // "Toplam: 8" } var topla = (int a, int b) => a + b; |
Yukarıdaki örnekte, topla
adlı bir arrow fonksiyonu tanımlanmıştır. Arrow fonksiyonları içinde sadece bir ifade bulunabilir ve bu ifade otomatik olarak fonksiyonun dönüş değeri olur.
Arrow fonksiyonları, kodunuzu daha kısa ve anlaşılır hale getirmenize yardımcı olabilir, özellikle küçük ve hızlı fonksiyonlar tanımlarken kullanışlıdır.
[…] Dart Fonksiyon Kullanımı […]