Generics Üzerinde Extension'lar
List, Iterable ve tür parametrelerini genişletme
Generics Üzerinde Extension'lar, CoddyKit'te ücretsiz bir Dart Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Dart Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Dart Academy kursu toplamda 4 dersten oluşur.
Koleksiyonları Genişletme
Asıl sihir, List veya Iterable gibi genel türleri genişlettiğinizde ortaya çıkar. Tek bir uzantı, aynı anda her öğe türüne yardımcı olabilir.
Bir Tür Parametresi Bildirin
Uzantı adının arkasına bir tür parametresi yazıp bunu on yan tümcesinde kullanın. Böylece yardımcınız tamamen tür güvenli kalır.
extension Firsts<T> on List<T> {
T? get firstOrNull => isEmpty ? null : this[0];
}Öğe Türü Akış Boyunca Taşınır
List of T yazdığınız için yönteminiz doğru öğe türünü otomatik olarak döndürür. Dönüştürme yok, dinamik tür sürprizleri yok.
List<int> nums = [1, 2, 3];
int? n = nums.firstOrNull; // typed as int?Erişimi Artırmak İçin Iterable'ı Genişletin
Iterable türünü List yerine genişletmek, yardımcınızın listelerde, kümelerde ve tembel iterable'larda da çalışmasını sağlar. Daha geniş erişim, aynı kod.
extension Counts<T> on Iterable<T> {
int countWhere(bool Function(T) f) => where(f).length;
}İçeride Genel Yöntemler
Bir uzantı yöntemi, genişlettiğiniz türden bağımsız olarak kendi genel parametrelerini de alabilir.
extension Mapping<T> on List<T> {
List<R> mapTo<R>(R Function(T) f) => map(f).toList();
}Tür Çıkarımı Size Yardımcı Olur
Dart genellikle tür bağımsız değişkenlerini üzerinde çağrı yaptığınız değerden çıkarır; böylece çağrı noktalarınız kısa ve temiz kalır.
var first = ["a", "b"].firstOrNull; // String?Map'i İki Türle Genişletin
Map'lerin iki parametreye ihtiyacı vardır. Map of K, V yazarak hem anahtarlara hem de değerlere uygun yardımcılar oluşturabilirsiniz.
extension MapPick<K, V> on Map<K, V> {
V? pick(K key) => this[key];
}Null Güvenliğini Koruyun
T yerine T? döndürmek, bir değerin eksik olabileceğini belirtir ve null güvenliği altında çağıran kodu doğru davranmaya zorlar.
extension SafeLast<T> on List<T> {
T? get lastOrNull => isEmpty ? null : last;
}Öğe Türleri Arasında Yeniden Kullanın
Tek bir genel uzantı her öğe türüne hizmet eder. Aynı firstOrNull; sayılarda, dizelerde ve kendi sınıflarınızda çalışır.
var who = <User>[].firstOrNull; // User?Gerektiğinde Sınırlandırın
Yardımcınızın belirli yeteneklere ihtiyacı varsa extends ile bir sınır ekleyin; böylece yalnızca uygun öğe türlerine izin verilir.
extension Sums<T extends num> on List<T> {
num total() => fold(0, (a, b) => a + b);
}Genel Uzantılar Neden Kazanır
Yeniden kullanımı güvenlikle birleştirirler: bir yardımcınızı tek sefer yazarsınız ve doğru dönüş türünü koruyarak her öğe türüne uyarlanır.
Hızlı Kontrol
Uzantıların tür güvenliğini korumaya ilişkin hızlı bir kontrol.
Özet: Genel Uzantılar
Bir uzantıya tür parametresi ekleyebileceğinizi, List, Iterable veya Map'i hedefleyebileceğinizi ve yeniden kullanılabilir ve güvenli kalmak için bunu extends ile sınırlandırabileceğinizi öğrendiniz. ✅
Sıkça Sorulan Sorular
“Generics Üzerinde Extension'lar” dersi ücretsiz mi?
Evet — “Generics Üzerinde Extension'lar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Dart Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Dart Academy kursu toplamda 4 dersten oluşur.
“Generics Üzerinde Extension'lar” dersinde ne öğreneceğim?
List, Iterable ve tür parametrelerini genişletme Dart Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Dart Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Dart Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“Generics Üzerinde Extension'lar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Dart Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Dart Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- İlk Extension'ınızı Yazma
- Generics Üzerinde Extension'lar
- Statik Extension Üyeleri ve Çakışmalar
- Sıfır Maliyetli Sarmalayıcılar için Extension Türleri