Özet - Stream'ler
- Dart kursu
- Orta seviye
- Ders 69/116
- 5 dk
listen, map ve StreamController'ı birleştirerek bir olay kaydedici yazarsın.
Özet - Stream'ler
Bu grupta Stream'lerin temellerini öğrendik: Stream olay dizisini temsil eder; listen ile abone olunur; map/where ile dönüştürülür; asyncExpand ile açılır; StreamController ile elle oluşturulur.
Bu araçlar birlikte Dart'ta olay tabanlı programlamanın temelini oluşturur. Kullanıcı girdisi, sensör verisi, ağ paketleri gibi sürekli akan verilerde kullanılırlar.
Şimdi iki aracı bir arada kullanan bir alıştırma yapalım: StreamController ile olay üret, map ile dönüştür ve yazdır.
Uygulama Controller ile üret, map ile dönüştür
import 'dart:async' zaten ekli. void main() async zaten yazılı. StreamController<int>() oluştur. controller.add(10) ve controller.add(20) ile iki olay gönder. controller.close() ile kapat. controller.stream.map((n) => n * 2) ile olayları ikiye katla. await for ile dinle ve print ile yazdır.
Başlangıç kodu
import 'dart:async';
void main() async {
// StreamController<int> oluştur, iki değer ekle, close ile kapat
// .map ile ikiye katla, await for ile yazdır
}Örnek çözüm
import 'dart:async';
void main() async {
var controller = StreamController<int>();
controller.add(10);
controller.add(20);
controller.close();
var doubled = controller.stream.map((n) => n * 2);
await for (var n in doubled) {
print(n);
}
}Beklenen çıktı
20 40
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Stream kavramlarını eşleştir
| Kavram | Anlamı |
|---|---|
Stream |
Olay dizisi |
listen |
Abone olma |
map/where |
Dönüştürme |
StreamController |
Elle oluşturma |
2 Hangi sınıf kendi Stream'ini elle oluşturmanı sağlar?
- StreamController Doğru cevap
- Completer
- Future
- Iterable
Açıklama: StreamController ile kendi Stream'ini elle oluşturursun.