0Pricing
Dart Academy · Ders

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 runs

Tembellik 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

  1. Üst Düzey İşlevler ve Currying
  2. fold, reduce ve genişletme
  3. sync* ile Tembel Yinelenebilirler ve Üreteçler
  4. Saf İşlev Pipeline'ları Oluşturma
← Dart Academy Sayfasına Dön