Dart Dilinde Fonksiyonlar
Fonksiyonlar, bir programda belirli bir işlemi gerçekleştiren kod bloklarıdır.
Kod tekrarını azaltır, programı daha okunabilir ve yönetilebilir hale getirir.
Dart dilinde fonksiyonlar ile parametre alabilir, değer döndürebilir ve programın farklı yerlerinden tekrar kullanılabilir.
1. Fonksiyon Nedir?
Fonksiyonlar, bir işlemi yapmak için yazdığımız bağımsız kod bloklarıdır.
Fonksiyon tanımlarken şunları belirtiriz:
- Fonksiyon adı
- Parametreler (isteğe bağlı)
- Döndürülecek değer (isteğe bağlı)
Fonksiyon yazmak programlamada modülerliği sağlar ve kodun tekrarını azaltır.
2. Temel Fonksiyon Tanımı
Öncelikle fonksiyonları tanımlamak için fonksiyonlar.dart ve tanımlanan fonksiyonları kullanmak için fonksiyonlar_main.dart isminde iki dart dosyası oluşturalım.
fonksiyonlar.dart dosyası içerisinde basit bir fonksiyon tanımlayalım:
void dartDersleri(){
print("Merhaba Dünya");
}
- void → Fonksiyonun geriye değer döndürmediğini belirtir.
- dartDersleri → Fonksiyonun adı.
- ( ) → Parametreler bu parantez içerisinde tanımlanır.
fonksiyonlar_main.dart dosyası içerisinde yazmış olduğumuz dosyayı çağıralım.
import 'package:dart_dersleri/blog/fonksiyon_blog.dart';
void main(){
dartDersleri();
}
3. Parametre Alan Fonksiyonlar
Fonksiyonlar parametre alarak esnek hale gelir.
Örnek: İki sayıyı toplama fonksiyonu.
void toplamaIslemi(int sayi1, int sayi2) {
int toplam = sayi1 + sayi2;
print("$sayi1 ve $sayi2 toplamı: $toplam");
}
Kullanımı:
import 'package:dart_dersleri/blog/fonksiyon_blog.dart';
void main(){
toplamaIslemi(32, 98); // 32 ve 98 toplamı: 130
toplamaIslemi(123, 456); // 123 ve 456 toplamı: 579
}
4. Geri Değer Döndüren Fonksiyonlar
Fonksiyonlar bir işlem yaptıktan sonra değer döndürebilir.
Böylece sonucu başka bir değişkende saklayabiliriz.
int carpma(int a, int b){
return a * b; // işlemin sonucu fonksiyonun geri dönüş değeri
}
Kullanımı:
import 'package:dart_dersleri/blog/fonksiyon_blog.dart';
void main(){
int sonuc = carpma(12, 7);
print("Çarpma işleminin sonucu: $sonuc"); // Çarpma işleminin sonucu: 84
}
5. Varsayılan Parametreler ve İsteğe Bağlı Parametreler
Dart’ta fonksiyonlara varsayılan değerler veya opsiyonel parametreler verebiliriz.
void parametreliFonksiyon(String isim, [String sehir = "İstanbul"]) {
print("İsim: $isim, Şehir: $sehir");
}
Kullanımı:
import 'package:dart_dersleri/blog/fonksiyon_blog.dart';
void main() {
parametreliFonksiyon("Ali"); // İsim: Ali, Şehir: İstanbul
parametreliFonksiyon("Ayşe", "Ankara"); // İsim: Ayşe, Şehir: Ankara
}
Yukarıdaki örnekte de gözüktüğü gibi “Ali” tanımlanırken şehir bilgisi boş bırakıldı. Parametre olarak “İstanbul” şehri atandığı için program boş olan parametreyi “İstanbul” ile doldurdu.
Yukarıdaki örnekte parametreliFonksiyon iki farklı şekilde çağrıldı:
- İlk çağrıda yalnızca isim “Ali” parametresi gönderildi. Şehir bilgisi belirtilmediği için fonksiyon, varsayılan değer olan “İstanbul” u kullandı.
- İkinci çağrıda ise hem isim “Ayşe” hem şehir “Ankara” parametreleri gönderildi. Bu durumda varsayılan değer devre dışı kaldı ve “Ankara” değeri kullanıldı.
Bu örnek sayesinde, isteğe bağlı parametreler ve varsayılan değer ataması kavramlarının nasıl çalıştığını görebiliriz.
6. Örnek Proje: Dört İşlem Hesap Makinesi
Fonksiyonları daha iyi anlamak için basit bir örnekle pekiştirelim.
int toplama(int sayi1, int sayi2){
int toplam = sayi1 + sayi2;
return toplam; // Geriye değer dönderir
}
void cikartma(int s1, int s2){
int sonuc= s1 - s2; // işlemi ve sonucu burada belirler
print("$s1 ve $s2 sayılarının farkı = $sonuc");
}
void carpma(int s1, int s2){
int sonuc= s1 * s2; // işlemi ve sonucu burada belirler
print("$s1 ve $s2 sayılarının çarpımı = $sonuc");
}
void bolme(double s1, double s2){
double sonuc= s1 /s2; // işlemi ve sonucu burada belirler
print("$s1 ve $s2 sayılarının bölümü = $sonuc");
}
void main(){
print("Toplama sonucu: ${toplama(14, 12)}");
cikartma(12, 5);
carpma(32, 5);
bolme(52, 20);
}
Bu yazımızda fonksiyonlar konusunu ele aldık. Temel fonksiyon tanımı, parametre alan ve geriye değer fonksiyonları ele aldık. Sınıf yapıları ile birleşince fonksiyonlar, programların daha efektif ve karmaşadan uzak bir şekilde çalışmasını sağlar.