Dart programlama dilinde fonksiyonlar (methodlar) bir programda belli bir iş kısmını yapması için yazılan ve tekrar tekrar kullanılabilen yapılardır. Fonksiyonlar parametreli-parametresiz olabileceği gibi bir de geriye değer döndüren-döndürmeyen şeklinde farklı kullanımları vardır. Gelin hep birlikte başlayalım.

Dart Programlama Parametresiz Fonksiyonlar
Öncelikle parametre (argüman) dediğimiz şey, fonksiyona girdi olarak verilebilen ve fonksiyondaki işlemden etkilenen değişkendir. Parametresiz fonksiyonlar da bu değişkene ihtiyaç olmaz ve program ona göre yazılır.
void main() {
selamlama();//çıktı-->Merhaba
}
void selamlama(){ //Parametresiz fonksiyon tanımı
//İstediğiniz işlemi yaptırabilirsiniz.
print("Merhaba");
}
Yukarıdaki örneği açıklayacak olursak, daha önceki anlatımlardan bildiğiniz gibi dart programlama dilinde, biz şimdiye kadar main() fonksiyonu üzerinden işlem yapıyorduk. Hala bizim ana fonksiyonumuz main ve programı çalıştıran kısım orasıdır.
void selamlama(){ } dediğimiz de parametresiz yeni bir fonksiyon tanımı yaptık. Burada ki void geriye değer döndürmeme anlamında kullanılır. Bu fonksiyonu kullanabilmek için main de olduğu gibi çağırım yapılmalıdır. Çıktı olarak bize Merhaba değeri döndürür.
Dart Programlama Parametreli Fonksiyonlar
void main() {
selamlamaKim("Ece");
var sonuc = kupAl(4);
}
//Parametreli fonksiyon tanımları
void selamlamaKim(String isim){ //Geriye değer döndürmeyen
print("Merhaba" + isim);
}
int kupAl(int sayi){ // Geriye değer döndüren
return sayi*sayi*sayi;
}
/*Çıktı
MerhabaEce
64*/
Yukarda iki farklı parametreli fonksiyon tanımı vardır. İkisinin farkı birisi geriye değer döndürürken diğeri döndürmez. Void olarak tanımlanan bir foksiyon geriye değer döndürmez.
Bunun dışında int, String, double... gibi tanımlanan fonksiyonlarda return ifadesi ile geri değer döndürmesi sağlanır. Bunu yaparken dikkat etmeniz gereken nokta fonksiyonu hangi tip tanımladıysanız geri dönüş tipide aynı olmalıdır.
kupAl fonksiyonunu bi değişkene atabilirken selamlamaKim() fonksiyonunu attığınızda ve onu print ile görüntülemek istediğinizde hata alırsınız. Bunun sebebi void tanımlanmasıdır.
Dart Programlama Fat Arrow Kullanımı
Tanımı kısa ve tek satırdan oluşan fonksiyonları tanımlarken kullanılır. Return kelimesi ve süslü parantez kullanılmaz.
void main() {
sayiCarp(4,9);
print("Karesi : " + kareAl(8).toString());
}
//Parametreli geriye değer döndürmeyen fonksiyon
void sayiCarp(int a1,int a2) => print(a1*a2);
//Parametreli geriye değer döndüren fonksiyon
int kareAl(int a) => a*a;
/*Çıktı
36
Karesi: 64*/
Dart Programlama Parametre Verilmesinin Opsiyonel Olduğu Durumlar
Parametre verirken isteğe bağlı yani değer vermeden de olmasını istediğimiz durumlarda [] veya {} kullanırız. Bunun dışında sadece normal parantezle() tanımladıysak fonksiyonu çağırırken parametreleri sıralı ve hepsini girmemiz gerekir.
Son olarak da fonksiyon tanımında varsayılan (default) değer verdiysek fonksiyon çağırımında parametresini vermezsek bu varsayılan değeri kullanarak çıktı verir.
void main(){
isimler("Ali","Veli");
sehirler("Türkiye");
kitaplar(kitap2:"Sefiller",kitap3:"Pi");
print("Haftalık Okunan:"+ haftalikOkuma(sayfa:50).toString());
}
//Bu tanımda fonksiyon çağrılırken parametreleri sıralı bir şekilde verilmesi zorunludur.
void isimler(String isim1, String isim2) {
print("1.İsim : $isim1");
print("2.İsim : $isim2");
}
//Köşeli parantez kullanımında hangi dğeri verip verilmeyeceği seçilemez.
void sehirler([String sehir1, String sehir2]) {
if (sehir1 != null) print("1.Şehir : $sehir1");
if (sehir2 != null) print("2.Şehir : $sehir2");
}
//Süslü parantezde hangi değerin verilip verilmeyeceği seçilebilir.
void kitaplar({String kitap1,String kitap2, String kitap3}) {
if (kitap1 != null) print("1.Kitap : $kitap1");
if (kitap2 != null) print("2.Kitap : $kitap2");
if (kitap3 != null) print("3.Kitap : $kitap3");
}
//Bu tanımda da gun sayisi fonksiyon çağırılırken belirtilmese de default tanım 7 yi kullanılır.
int haftalikOkuma({int gun = 7, int sayfa = 20}) {
return gun * sayfa;
}
/*Çıktı
1.İsim : Ali
2.İsim : Veli
1.Şehir : Türkiye
2.Kitap : Sefiller
3.Kitap : Pi
Haftalık Okunan:350
*/