Birleştirme
- Dart kursu
- Orta seviye
- Ders 17/116
- 6 dk
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
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
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
library ____;
class Helper { ... }
library helpers;
class Helper { ... }
Açıklama: library yönergesi kütüphaneye bir isim verir.