Size: a a a

Kotlin Community

2020 January 28

VP

Vladimir Petrakovich in Kotlin Community
Quantum Harmonizer
моя проблема была с передачей скоупа/контекста
Тут, видимо, нужно подобие Flow, когда пользователю возвращается ленивое вычисление, которое надо самому запустить в нужном контексте.
источник

QH

Quantum Harmonizer in Kotlin Community
Unat
потому что supervisorJob.cancel() убил весь скоуп насовсем. Исправил через supervisorJob.cancelChildren() - это убивает только корутины внутри скоупа, но сам скоуп можно продолжать использовать.
А, понял. Спасибо.
источник

VP

Vladimir Petrakovich in Kotlin Community
Скоупы вообще не нужны
источник

U

Unat in Kotlin Community
Vladimir Petrakovich
Тут, видимо, нужно подобие Flow, когда пользователю возвращается ленивое вычисление, которое надо самому запустить в нужном контексте.
Вон я выше родил пример :D
источник

QH

Quantum Harmonizer in Kotlin Community
Vladimir Petrakovich
Скоупы вообще не нужны
я вот всегда был склонен считать, что не нужен именно флоу)
источник

VP

Vladimir Petrakovich in Kotlin Community
Unat
Вон я выше родил пример :D
Ну да, вроде того, только аргумент suspend
источник

U

Unat in Kotlin Community
Vladimir Petrakovich
Ну да, вроде того, только аргумент suspend
у него "драйвер" блокирующий, неоткуда там suspend взять
источник

U

Unat in Kotlin Community
но "про запас" можно и suspend пометить
источник

U

Unat in Kotlin Community
Или вообще возвращать override fun <T> cell(...): suspend () -> T xD
источник

VP

Vladimir Petrakovich in Kotlin Community
Unat
но "про запас" можно и suspend пометить
Вот да, это уже дело пользователя, тем более по дефолту контекст - IO
источник

QH

Quantum Harmonizer in Kotlin Community
Unat
Или вообще возвращать override fun <T> cell(...): suspend () -> T xD
блиииин, возвращать suspend-функцию — это агонь, спасибо!
источник

U

Unat in Kotlin Community
Quantum Harmonizer
блиииин, возвращать suspend-функцию — это агонь, спасибо!
А потом тебя в дурку заберут, потому что IDE будет показывать странные сигнатуры в коде (что-то вроде public final fun msgInit(): MapMessage /* = (MapState) → Pair<MapState, List<ElmEffect<MapContext, MapState> /* = suspend ChannelWrapper<MapContext, MapState>.(MapContext, MapState) → Unit */>> */)
источник

VP

Vladimir Petrakovich in Kotlin Community
Unat
А потом тебя в дурку заберут, потому что IDE будет показывать странные сигнатуры в коде (что-то вроде public final fun msgInit(): MapMessage /* = (MapState) → Pair<MapState, List<ElmEffect<MapContext, MapState> /* = suspend ChannelWrapper<MapContext, MapState>.(MapContext, MapState) → Unit */>> */)
В этом проекте, кажется, есть места и пожёстче
источник

QH

Quantum Harmonizer in Kotlin Community
Unat
А потом тебя в дурку заберут, потому что IDE будет показывать странные сигнатуры в коде (что-то вроде public final fun msgInit(): MapMessage /* = (MapState) → Pair<MapState, List<ElmEffect<MapContext, MapState> /* = suspend ChannelWrapper<MapContext, MapState>.(MapContext, MapState) → Unit */>> */)
источник

U

Unat in Kotlin Community
Vladimir Petrakovich
В этом проекте, кажется, есть места и пожёстче
Ну... а кто сказал, что он не из дурки работает?
источник

AN

Alexander Nozik in Kotlin Community
Клийон уже почти доковырял поддержку clang на винде. Надеюсь, что скоро и в таргетах для нейтива будет.
источник

MB

Mikhail Bobrutskov in Kotlin Community
я правильно понимаю, что в котлине нельзя написать SAM интерфейс и имплементить его как лямбду?
источник

D

Dmitry in Kotlin Community
Mikhail Bobrutskov
я правильно понимаю, что в котлине нельзя написать SAM интерфейс и имплементить его как лямбду?
Правильно. Но вроде говорили, что есть планы в новых версиях такое реализовать. Сейчас только для джавы работает.
источник

SB

Sergey Barmin in Kotlin Community
Эх, таки Канада для следующего котлинконфа

https://twitter.com/kotlinconf/status/1222142913280385024
источник

AN

Alexander Nozik in Kotlin Community
Жаль
источник