Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗ktSpFwRd 189 of 299 menu
◀ ▶

Поток из готовых значений в Kotlin

Когда последовательность уже известна и не требует вычислений между шагами, удобнее flowOf. Функция принимает значения перечислением и возвращает холодный Flow, готовый к операторам и сбору.

Несколько строк передают аргументами - порядок сохраняется при collect:

import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.runBlocking fun main() { runBlocking { flowOf("north", "east", "south") .collect { side -> println(side) } } }

Три стороны света печатаются по одной строке. Внутри flowOf нет явного emit, но поведение при сборе такое же, как у ручного строителя.

Функция flowOf часто стоит в начале цепочки перед map или filter:

import kotlinx.coroutines.flow.collect import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map import kotlinx.coroutines.runBlocking fun main() { runBlocking { flowOf(3, 6, 9) .map { v -> v / 3 } .collect { part -> println(part) } } }

На выходе 1, 2 и 3. Готовый поток не мешает комбинировать операторы дальше по цепочке.

Соберите поток из чисел 100, 200, 300 через flowOf и выведите каждое на отдельной строке.

Из трех меток "on", "off", "on" сделайте поток и оставьте только строки "on" с помощью filter.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить