まず、Kotlin Flowを使用するためには、kotlinx.coroutines.flow
パッケージをインポートする必要があります。
import kotlinx.coroutines.*
import kotlinx.coroutines.flow.*
fun main() = runBlocking {
// 1から5までの数字を含むFlowを作成する
val flow = flow {
for (i in 1..5) {
delay(100) // 100ミリ秒待つ
emit(i) // 数字を発行する
}
}
// Flowの値を受け取り、表示するコレクターを作成する
val collector = launch {
flow.collect { value ->
println(value) // 受け取った値を表示する
}
}
delay(500) // 500ミリ秒待つ
collector.cancel() // コレクターをキャンセルする
}
上記の例では、Flowを作成し、その値をコレクターで受け取って表示しています。Flowは非同期に値を生成し、コレクターはその値を受け取って処理します。flow.collect
メソッドはFlowの値を受け取るためのコレクターを作成し、emit
メソッドは値を発行します。
この例では、1から5までの数字が順番に表示されます。delay
関数は値を発行する間の待ち時間を設定します。
また、上記の例ではrunBlocking
を使用してメイン関数を非同期に実行しています。これにより、Flowの生成と受け取りを同期的に行うことができます。
Kotlin Flowは非同期プログラミングで非常に便利なツールであり、さまざまなシナリオで活用することができます。以上がKotlin Flowのシンプルな例です。