Özet - İleri Flow
- Kotlin kursu
- İleri seviye
- Ders 12/83
- 5 dk
StateFlow, SharedFlow ve Channel'ı birleştirerek bir olay sistemi yazarsın.
Özet - İleri Flow
Bu grupta StateFlow, SharedFlow, Channel, debounce, conflate ve flatMapLatest kavramlarını işledik. Bunlar Reactive Streams tarzı veri akışını Kotlin'e taşıyan parçalardır.
StateFlow durum taşır, SharedFlow olay yayar, Channel coroutine'ler arası kuyruk olur. debounce ve conflate akışı sıkıştırır; flatMapLatest iç akışları en son değere göre yönetir. Birlikte kullanıldıklarında reaktif bir arayüz ortaya çıkar.
Uygulama Channel ile özet akış
val channel = Channel<Int>() tanımla. Bir launch içinde channel.send(10) ve channel.send(20) çağır, sonra channel.close() yap. Ana akışta for (value in channel) ile her değeri println("Aldı: $value") ile yazdır.
Başlangıç kodu
// Özet: Channel kullan
// buraya yaz
fun main() = runBlocking {
}Örnek çözüm
fun main() = runBlocking {
val channel = Channel<Int>()
launch {
channel.send(10)
channel.send(20)
channel.close()
}
for (value in channel) {
println("Aldı: $value")
}
}Beklenen çıktı
Aldı: 10 Aldı: 20
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Tüm Flow kavramlarını eşle
| Kavram | Anlamı |
|---|---|
StateFlow |
Durum taşır |
SharedFlow |
Olay yayar |
Channel |
Kuyruk olur |
debounce |
Süreye göre sıkıştırır |
flatMapLatest |
En son iç akış |
2 Hangisi durum taşımak için uygundur?
- SharedFlow
- debounce
- Channel
- StateFlow Doğru cevap
Açıklama: StateFlow durum taşımak için tasarlanmıştır.