Size: a a a

Kotlin Community

2020 January 05

QH

Quantum Harmonizer in Kotlin Community
Осознал, что мне не хватает наличия suspend в системе типов:
тайп-параметрами я могу сказать «функция возвращает T» и знать, что он выведется из значения value-параметра, но не могу так же задать засуспендиваемость. Выходит та же проблема, что и с checked exceptions (только вот throws T писать можно было).
источник

QH

Quantum Harmonizer in Kotlin Community
На типах можно сделать переключалку между «вернуть T на месте» и «вернуть CompletableFuture<T>».
источник

(

( in Kotlin Community
Quantum Harmonizer
Осознал, что мне не хватает наличия suspend в системе типов:
тайп-параметрами я могу сказать «функция возвращает T» и знать, что он выведется из значения value-параметра, но не могу так же задать засуспендиваемость. Выходит та же проблема, что и с checked exceptions (только вот throws T писать можно было).
да
источник

(

( in Kotlin Community
но ты можешь сделать Deferred же
источник

QH

Quantum Harmonizer in Kotlin Community
(
но ты можешь сделать Deferred же
Точняк, спасибо. Насколько это плохо?
источник

(

( in Kotlin Community
Quantum Harmonizer
Точняк, спасибо. Насколько это плохо?
у Deferred не определена семантика ленивости, оно может быть и тем и другим. Если тебя это не парит, то в целом норм
источник

AN

Alexander Nozik in Kotlin Community
(
у Deferred не определена семантика ленивости, оно может быть и тем и другим. Если тебя это не парит, то в целом норм
У Deferred можно сделать старт в любой момент не зависимо от того, ленивый он или нет. Ленивыми очень мало кто пользуется
источник

QH

Quantum Harmonizer in Kotlin Community
(
у Deferred не определена семантика ленивости, оно может быть и тем и другим. Если тебя это не парит, то в целом норм
но чтобы сделать deferred, мне нужно захватить контекст корутины, верно?
источник

BV

Boris Vanin in Kotlin Community
Quantum Harmonizer
но чтобы сделать deferred, мне нужно захватить контекст корутины, верно?
Можно определить вызов только а контексте корутины и оставить этим париться пользователя
источник

(

( in Kotlin Community
Boris Vanin
Можно определить вызов только а контексте корутины и оставить этим париться пользователя
не полиморфно получается
источник

QH

Quantum Harmonizer in Kotlin Community
Boris Vanin
Можно определить вызов только а контексте корутины и оставить этим париться пользователя
но тогда придётся написать отдельную апишку для корутин и отдельную для не-корутин
источник

QH

Quantum Harmonizer in Kotlin Community
можно, конечно, заставить передавать контекст явно, как часть адаптера
источник

BV

Boris Vanin in Kotlin Community
Quantum Harmonizer
но тогда придётся написать отдельную апишку для корутин и отдельную для не-корутин
А что в этом такого уж плохого?
источник

(

( in Kotlin Community
Alexander Nozik
У Deferred можно сделать старт в любой момент не зависимо от того, ленивый он или нет. Ленивыми очень мало кто пользуется
Ленивость вычисления сильно меняет семантику, очевидно
источник
2020 January 08

AN

Alexander Nozik in Kotlin Community
А он не может?
источник

AN

Alexander Nozik in Kotlin Community
Сейчас проверю
источник

BV

Boris Vanin in Kotlin Community
Похоже что не может
источник

BV

Boris Vanin in Kotlin Community
Конечно где-то есть класс, который всё имплементирует, но здесь мы знаем только два интерфейса которые мы указали в констрейнтах
источник

AN

Alexander Nozik in Kotlin Community
момент
источник

AN

Alexander Nozik in Kotlin Community
ааа.  Все, понял. Смысл в том, что T неизвестен
источник