vararg flows: Flow<T>,
crossinline transform: suspend (Array<T>) -> R
): Flow<R>
Я не очень понимаю - вот эта версия функции типизирована одним типом Т?
Получается что при таком определении все функции, которые мы передаём в combine должны возвращать один тип данных?
если нужно возвращать разные типы, оберни их в sealed класс, типо котлиновского Result, но придется каждый тип обработать отдельно
не получится. Они не подходят под sealed.
inline fun <R> combine( vararg flows: Flow<MyResult>, crossinline transform: suspend (Array<MyResult>) -> R ): Flow<R> { } sealed class MyResult { class MyFloatResult(val value: Float) : MyResult() class MyStringResult(val value: String) : MyResult() } Почему не подходит ?
потому что MyResult будет разный и по идее надо типизировать как <T1, T2, T3...> соответственно делать n функций по количеству входных флоу или я туплю?
Обсуждают сегодня