Size: a a a

Kotlin Community

2019 November 19

(

( in Kotlin Community
ну, тогда это классика, fun <A, B> combine(a: Deferred<A>, b: Deferred<B>): Pair<A, B> и так до 22
источник

VP

Vladimir Petrakovich in Kotlin Community
Igor
val aDeferred : Deferred<A> = async { ... }
val bDeferred : Deferred<B> = async { ... }
val cDeferred : Deferred<C> = async { ... }

val a : A = aDeferred.await()
val b : B = bDeferred.await()
val c : C = cDeferred.await()
Вообще это чуть ли не пример из доки
источник

(

( in Kotlin Community
Генерализуется только хлистом и тайп фемелями, которых в котлине нет
источник

(

( in Kotlin Community
Igor
Как мне это поможет типы сохранить?
ну кстати ещё можно попробовать с делегатами чё-то покрутить
источник

(

( in Kotlin Community
Типа,
corprehension {
 val a: A by async { ... }
 val b: B by async { ... }
 val c: C by async { ... }
}
источник

(

( in Kotlin Community
и каждый вызов одной из этих переменных повлечёт вызов .await()
источник

VP

Vladimir Petrakovich in Kotlin Community
(
Типа,
corprehension {
 val a: A by async { ... }
 val b: B by async { ... }
 val c: C by async { ... }
}
Кажется, оно так не работает
источник

(

( in Kotlin Community
я не уверен правда, что так получится, емнип в языке гвоздями прибит запрет на suspend operator getValue
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir Petrakovich
Кажется, оно так не работает
ну денлгат ручками написть
источник

BP

Bogdan Panchenko in Kotlin Community
(
я не уверен правда, что так получится, емнип в языке гвоздями прибит запрет на suspend operator getValue
а обязательно нужен operator ? вроде по сигнатуре работало
источник

(

( in Kotlin Community
Bogdan Panchenko
а обязательно нужен operator ? вроде по сигнатуре работало
да, getValue без него получится обычным методом
источник

I

Igor in Kotlin Community
Vladimir Petrakovich
Вообще это чуть ли не пример из доки
Ну вот, так и живем 🤷‍♀️
источник

VP

Vladimir Petrakovich in Kotlin Community
(
я не уверен правда, что так получится, емнип в языке гвоздями прибит запрет на suspend operator getValue
Вот да, я об этом
источник

AN

Alexander Nozik in Kotlin Community
Вы,чувствуется, хотите суспенд аналог lazy сделать. Это можно, но скоуп надо будет руками передавать, потому что нет мультиресивера
источник

VP

Vladimir Petrakovich in Kotlin Community
Igor
Ну вот, так и живем 🤷‍♀️
Ну не так уж и плохо всё 🤷‍♂️
источник

(

( in Kotlin Community
Igor
Ну вот, так и живем 🤷‍♀️
есть ещё один источник, где в теории можно подглядеть
источник

I

Igor in Kotlin Community
Ну я вообще надеялся на мастер класс по arrow аликативам
источник

(

( in Kotlin Community
Igor
Ну я вообще надеялся на мастер класс по arrow аликативам
вот да, только хотел сказать про эрроу
источник

(

( in Kotlin Community
но хаскель-скала-лайк ФП ничего не привносит в мир в плане сплиттинга и джойна сайд-эффектов
источник

VP

Vladimir Petrakovich in Kotlin Community
Щас бы обмазаться arrow, чтобы await() не писать
источник