CodeBlanks Logo Icon CodeBlanks

Özet - İleri Flow

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

Main.kt
// Özet: Channel kullan
// buraya yaz
fun main() = runBlocking {
    
}

Örnek çözüm

Main.kt
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.

İleri seviye bölümündeki tüm dersler