sync* ile Tembel Yinelenebilirler ve Üreteçler
Değerleri gerektiğinde üretin.
sync* ile Tembel Yinelenebilirler ve Üreteçler, CoddyKit'te ücretsiz bir Dart Academy dersidir. Bu, 4 dersinin 3. 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.
Tembel Ne Anlama Gelir
Tembel bir yinelenebilir yapı, değerlerini siz gerçekten isteyene kadar hesaplamaz. İşler bir kerede değil, ihtiyaç oldukça gerçekleşir. 🦥
Yinelenebilir Yapılar Tembeldir
map ve where gibi yöntemler tembel bir Iterable döndürür. Siz yineleme yapana veya toList çağrısını yapana kadar hiçbir şey çalışmaz.
var it = [1, 2, 3].map((n) {
print('seen $n');
return n * 2;
});Henüz Hiçbir Şey Çalışmaz
Bu yinelenebilir yapıyı tüketene kadar map gövdesi hiç çalışmaz. Tembellik, işi tanımlayıp maliyeti ertelemenizi sağlar.
for (var x in it) print(x); // now it runsTembellik Neden Yararlıdır
Yalnızca birkaç sonuca ihtiyacınız olduğunda tembellik iş yükünü azaltır. take ile birlikte kullanarak erken durabilir ve geri kalanını atlayabilirsiniz.
var first2 = it.take(2).toList();sync* Üreteçleriyle Tanışın
sync* işlevi, tembel bir Iterable oluşturan bir üreteçtir. Değerleri istendikçe birer birer üretir.
Iterable<int> count(int n) sync* {
for (var i = 1; i <= n; i++) yield i;
}yield Anahtar Sözcüğü
Bir üretecin içinde yield, tek bir değeri çağırana verir ve bir sonraki değere ihtiyaç duyulana kadar duraklar.
print(count(3).toList()); // [1, 2, 3]Sonsuz Diziler
Değerler tembel olduğundan, yalnızca sonlu bir parça aldığınız sürece bir üreteç sonsuz bir diziyi güvenle tanımlayabilir.
Iterable<int> naturals() sync* {
var i = 0;
while (true) yield ++i;
}Sonlu Bir Parça Almak
Sadece ihtiyacınız olanı almak için sonsuz bir üreteci take ile eşleştirin. Döngü, parçanız tamamlanır tamamlanmaz durur.
print(naturals().take(5).toList()); // [1, 2, 3, 4, 5]yield* Yetki Devreder
Başka bir yinelenebilir yapı veya üreteçteki her değeri üretmek için yield* kullanın. Bir diziyi geçerli diziye düzleştirir.
Iterable<int> both() sync* {
yield* count(2);
yield* count(2);
}Üreteçler ve Liste Oluşturma
Bir üreteç, bellekte tam bir liste oluşturma gereğini ortadan kaldırır. Değerleri akış hâlinde ürettiğiniz için büyük veya sonsuz diziler belleği az kullanır.
sync* ve async* Karşılaştırması
Eş zamanlı tembel yinelenebilir yapılar için sync* kullanın. Eş zamansız kardeşi async* ise eş zamansız olay dizileri için bir Stream üretir.
Kısa Kontrol
Üreteçleri ne kadar anladığınızı test edin.
Özet
Yinelenebilir yapılar tembeldir ve sync* üreteçleri değerleri ihtiyaç oldukça üretir. Böylece sonsuz dizileri bile düşük maliyetle modelleyebilirsiniz. 🌟
Sıkça Sorulan Sorular
“sync* ile Tembel Yinelenebilirler ve Üreteçler” dersi ücretsiz mi?
Evet — “sync* ile Tembel Yinelenebilirler ve Üreteçler” 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.
“sync* ile Tembel Yinelenebilirler ve Üreteçler” dersinde ne öğreneceğim?
Değerleri gerektiğinde üretin. 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 3. dersidir.
“sync* ile Tembel Yinelenebilirler ve Üreteçler” 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
- Üst Düzey İşlevler ve Currying
- fold, reduce ve genişletme
- sync* ile Tembel Yinelenebilirler ve Üreteçler
- Saf İşlev Pipeline'ları Oluşturma