run2()
の結果
1+2=3
2+4=6
3+6=9
4+8=12
5+10=15
6+12=18
7+14=21
8+16=24
9+18=27
10+20=30
run1()
の結果
1a
2a
2b
2c
Kotlin Playground https://pl.kotl.in/B2FmDSr_j
Flow
のcombine
は、複数のFlow
から値を組み合わせて新しい値を生成するための便利なメソッドです。これにより、複数の非同期なデータストリームを1つにまとめることができます。
combine
メソッドは、2つのFlow
を受け取り、それらの値が更新されるたびに指定された変換関数を実行し、新しい値を生成します。以下は、基本的な使い方です:
import kotlinx.coroutines.flow.*
fun main() {
val flow1 = flowOf(1, 2, 3)
val flow2 = flowOf("A", "B", "C")
val combinedFlow = flow1.combine(flow2) { value1, value2 ->
"$value1 - $value2"
}
// Collect and print the combined values
combinedFlow.collect { combinedValue ->
println(combinedValue)
}
}
この例では、flow1
とflow2
があります。combine
メソッドはこれら2つのFlow
を受け取り、新しい値を生成するためのラムダ式を提供します。ここでは、整数と文字列を組み合わせて新しい文字列を生成しています。
実際に実行すると、以下のような出力が得られます:
1 - A
2 - B
3 - C
これにより、2つの異なるFlow
の値を組み合わせて新しいFlow
を作成することができます。この結果をコレクトすることで、新しい値を受け取ることができます。