Size: a a a

Kotlin Community

2020 December 30

A

Aleksandr in Kotlin Community
Alexander Nozik
С учетом форматирования 5 строк : https://pl.kotl.in/gYkbf5dRF
Размер неизвестен. Нужно накапливать пока обработчик занят, как обработчик освобождается отдавать ему всё разом.
источник

AN

Alexander Nozik in Kotlin Community
Aleksandr
Размер неизвестен. Нужно накапливать пока обработчик занят, как обработчик освобождается отдавать ему всё разом.
А, ну тогда чуть сложнее. У меня есть готовая реализация в Plotly. Сейчас скину
источник

AN

Alexander Nozik in Kotlin Community
А, кстати не сложнее: https://github.com/mipt-npm/plotly.kt/blob/55aa19038cb5609c367302f5d1e20607f0f2d30a/plotlykt-server/src/main/kotlin/kscience/plotly/server/MetaChangeCollector.kt#L53-L64. Надо только вместо моего накопителя кастомного поставить тот же ArrayList
источник

A

Aleksandr in Kotlin Community
Не совсем то, там есть updateInterval по которому это всё выгружается, а мне нужно как только так сразу
источник

AN

Alexander Nozik in Kotlin Community
Aleksandr
Не совсем то, там есть updateInterval по которому это всё выгружается, а мне нужно как только так сразу
Так уберите этот delay и все будет работать, как вы хотите, оно будет вычитываться как только потребитель затребует следующую порцию. В моей реализации задержка сделана чтобы вычитка была не чаще, чем заданное значение. Можно поставить его равным нулю.
источник

D

Denys in Kotlin Community
источник

OY

Oleg Yukhnevich in Kotlin Community
Aleksandr
Не совсем то, там есть updateInterval по которому это всё выгружается, а мне нужно как только так сразу
источник

IP

Iaroslav Postovalov in Kotlin Community
источник

IP

Iaroslav Postovalov in Kotlin Community
хкт бы еще
источник

V

Vladimir in Kotlin Community
extension functions в интерфейсе - это сильно
источник

A

Aleksandr in Kotlin Community
То что нужно, спасибо. Я пытался через job-у сделать, но ваш вариант мне больше нравится.
источник

OY

Oleg Yukhnevich in Kotlin Community
Aleksandr
То что нужно, спасибо. Я пытался через job-у сделать, но ваш вариант мне больше нравится.
единственное замечание - что оно будет посылать дальше список, только когда приходит новый элемент
Если нужно, чтобы как только коллетор закончил обработку высылать всё, что накопилось - тогда надо делать как-то иначе
источник

A

Aleksandr in Kotlin Community
Oleg Yukhnevich
единственное замечание - что оно будет посылать дальше список, только когда приходит новый элемент
Если нужно, чтобы как только коллетор закончил обработку высылать всё, что накопилось - тогда надо делать как-то иначе
Да, нужно(((
источник

D

Denys in Kotlin Community
Vladimir
extension functions в интерфейсе - это сильно
А почему нет?
источник

V

Vladimir in Kotlin Community
применимость я могу представить, но пример высосан из пальца. Т.к. перегруженный sum и так принимает этот Addable и работает с ним, можно было просто хранить эти две лямбды без расширения
источник

с#

саша сок #KotlinGang... in Kotlin Community
а почему инлайн класс не может велью из дженерика хранить?
источник

OY

Oleg Yukhnevich in Kotlin Community
Aleksandr
Да, нужно(((
https://pl.kotl.in/lczkzOWwd
даже проще вышло 🙂
источник

A

Aleksandr in Kotlin Community
Oleg Yukhnevich
https://pl.kotl.in/lczkzOWwd
даже проще вышло 🙂
Круто. Вместо receiveOrNull лучше использовать просто receive, чтобы exception прокидывался?
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Postovalov
хкт бы еще
блин, еще один. Опиши юз кейс, который не связан с маппингом листа и сериализацией.
источник

OY

Oleg Yukhnevich in Kotlin Community
Aleksandr
Круто. Вместо receiveOrNull лучше использовать просто receive, чтобы exception прокидывался?
вообще, тогда лучше делать receiveOrClosed() - и прокидывать ошибку, если там реально было ошибка
если использовать receive() - то даже если канал закрылся просто так (во flow закончились элементы, будет ошибка)
вообще, думаю можно заменить наружный цикл на consumeEach
источник