Stream nedir?
- Dart kursu
- Orta seviye
- Ders 64/116
- 5 dk
Stream kavramını ve olay dizisini öğrenirsin.
Stream nedir?
Stream<T> zaman içinde art arda gelen olayları temsil eder. Bir Future tek bir sonuç verir; bir Stream ise birden çok değeri sırayla iletir. Olay tabanlı veriler için kullanılır.
Örnek: var s = Stream.fromIterable([1, 2, 3]);. Bu, 1, 2 ve 3 değerlerini sırayla üreten bir akıştır. Değerleri almak için await for kullanırsın: await for (var n in s) { print(n); }.
Stream, kullanıcı girdisi, sensör verisi, ağ paketleri gibi sürekli akan verilerde kullanılır. Her olay geldiğinde işlenir; akış kapanana kadar devam eder.
await for ile dinleme
Bir Stream'in olaylarını almak için await for döngüsü kullanılır. Bu, for döngüsüne benzer; ama her adımda bir sonraki olayı bekler.
Örnek: await for (var n in stream) { print(n); }. Stream her olay gönderdiğinde n o olayın değerini alır ve print çalışır. Stream kapanınca döngü biter.
await for yalnızca async fonksiyonlarda çalışır. Bu yüzden void main() async yazman gerekir. Döngü, Stream tamamlanana kadar bekler.
Uygulama Stream olaylarını yazdır
void main() async zaten yazılı. Stream.fromIterable([1, 2, 3]) ile bir akış oluştur. await for ile her olayı bekle ve print ile yazdır.
Başlangıç kodu
void main() async {
// Stream ile 1, 2, 3 akışı oluştur
// await for ile her elemanı yazdır
}Örnek çözüm
void main() async {
var s = Stream.fromIterable([1, 2, 3]);
await for (var n in s) {
print(n);
}
}Beklenen çıktı
1 2 3
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Stream ile Future arasındaki fark nedir?
- İkisi tamamen aynıdır
- Stream daha hızlıdır
- Future birden çok değer iletir
- Stream birden çok değer iletir, Future tek bir değer Doğru cevap
Açıklama: Stream art arda birden çok değer iletir, Future tek bir sonuç verir.
2 Stream oluşturma
var s = ____.fromIterable([1, 2, 3]);
var s = Stream.fromIterable([1, 2, 3]);
Açıklama: Stream.fromIterable ile bir akış oluşturulur.
3 Stream parçalarını eşleştir
| Kavram | Anlamı |
|---|---|
Stream.fromIterable |
Akış oluşturma |
await for |
Dinleme |
var n in stream |
Olay değişkeni |
print(n) |
Olayı yazdırma |