CodeBlanks Logo Icon CodeBlanks

Birleştirme

Yardımcı metotları bir kütüphanede birleştirirsin.

Birleştirme

Son derste üç yardımcı metodu bir arada çağıracağız. slugify dizgeleri, clamp sayıları, formatDate tarihleri düzenler. Tek bir Helper örneği üzerinden hepsi çalışır.

Bir örnek oluşturup üç metodu sırayla çağıracağız: var h = Helper();, h.slugify(...), h.clamp(...), h.formatDate(...). Her çağrı bir satır çıktı verir. Böylece kütüphanenin çalıştığını görmüş oluruz. Ayrıca dosyaya bir library yönergesi ekleyerek onu adlandırılmış bir kütüphane olarak işaretleyeceğiz.

library ve export

Dart'ta bir dosyayı adlandırılmış bir kütüphane yapmak için library yönergesi kullanılır: library helpers;. Bu, dosyaya bir isim verir ve başka dosyalardan içe aktarılmasını kolaylaştırır.

İlişkili bir kavram export'tür: başka bir kütüphanedeki simgeleri kendi kütüphanen üzerinden yeniden yayınlamak için kullanılır. Örneğin export 'src/string_helpers.dart'; o dosyadaki herkese açık simgeleri kendi kütüphanenden dışa aktarır. Bu derste tek dosyada çalıştığımız için export doğrudan kullanmayız; ama kütüphane tasarımında önemli bir araçtır ve gerçek projelerde birden çok dosyayı tek arayüz altında toplar.

Uygulama Kütüphaneyi birleştir

Var olan Helper sınıfını koru. Dosyanın en üstüne library helpers; yönergesini ekle. main içinde var h = Helper(); ile örnek oluştur ve üç yardımcıyı sırayla çağır: print(h.slugify('Merhaba Dünya')), print(h.clamp(15, 0, 10)) ve print(h.formatDate(2024, 5, 1)).

Başlangıç kodu

main.dart
class Helper {
  final String version;
  Helper() : version = '1.0';
  String slugify(String text) {
    return text.toLowerCase().replaceAll(' ', '-');
  }
  int clamp(int value, int min, int max) {
    if (value < min) return min;
    if (value > max) return max;
    return value;
  }
  String formatDate(int year, int month, int day) {
    var m = month.toString().padLeft(2, '0');
    var d = day.toString().padLeft(2, '0');
    return '$year-$m-$d';
  }
}

void main() {
  var h = Helper();
  print(h.formatDate(2024, 5, 1));
}
// library helpers; yönergesini dosya başına ekle

void main() {
  // Tüm yardımcıları sırayla çağır
}

Örnek çözüm

main.dart
library helpers;

class Helper {
  final String version;
  Helper() : version = '1.0';
  String slugify(String text) {
    return text.toLowerCase().replaceAll(' ', '-');
  }
  int clamp(int value, int min, int max) {
    if (value < min) return min;
    if (value > max) return max;
    return value;
  }
  String formatDate(int year, int month, int day) {
    var m = month.toString().padLeft(2, '0');
    var d = day.toString().padLeft(2, '0');
    return '$year-$m-$d';
  }
}

void main() {
  var h = Helper();
  print(h.slugify('Merhaba Dünya'));
  print(h.clamp(15, 0, 10));
  print(h.formatDate(2024, 5, 1));
}

Beklenen çıktı

merhaba-dünya
10
2024-05-01

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir Helper örneği üzerinde hangi çağrı çalışır?

  • h.slugify('Merhaba') Doğru cevap
  • Helper.slugify('Merhaba')
  • slugify('Merhaba')
  • h(Helper.slugify)

Açıklama: Örnek üzerinden h.metot() biçiminde çağrı yapılır.

2 Yardımcıları eşle

Kavram Anlamı
slugify Dizge yardımcı
clamp Sayı yardımcı
formatDate Tarih yardımcı

3 library yönergesini tamamla

Soru
library ____;

class Helper { ... }
Cevap
library helpers;

class Helper { ... }

Açıklama: library yönergesi kütüphaneye bir isim verir.

Orta seviye bölümündeki tüm dersler