Size: a a a

Kotlin Community

2020 January 10

NK

Nikita Kulikov in Kotlin Community
Andrew Mikhaylov
А как иначе запускать задачу и получать Deferred? Этим билдеры корутин занимаются, в данном случае launch.
Т.е. надо все в одном корутинскоупе делать?
источник

AM

Andrew Mikhaylov in Kotlin Community
Nikita Kulikov
Т.е. надо все в одном корутинскоупе делать?
Что "всё"? Я ж не знаю, что вы конкретно делаете.
источник

NK

Nikita Kulikov in Kotlin Community
Andrew Mikhaylov
Что "всё"? Я ж не знаю, что вы конкретно делаете.
Все что происходит внутри того блока который кинули
источник

NK

Nikita Kulikov in Kotlin Community
Если я вырежу launch и сделаю просто функцией, что изменится?
источник

AO

Alexey Otts in Kotlin Community
Andrew Mikhaylov
А как иначе запускать задачу и получать Deferred? Этим билдеры корутин занимаются, в данном случае launch.
Ну для создания комлитебла же не нужен скоуп
источник

AM

Andrew Mikhaylov in Kotlin Community
Nikita Kulikov
Если я вырежу launch и сделаю просто функцией, что изменится?
Ну, то, что вы перестанете корутинами пользоваться, можно выкинуть скоуп в таком случае. Только если вы просто выкинете лонч, очевидно, функция вернёт только при получении результата и синхронизировать вам нечего.
источник

AM

Andrew Mikhaylov in Kotlin Community
Alexey Otts
Ну для создания комлитебла же не нужен скоуп
Для комплитбла нет, он нужен лончу.
источник

AO

Alexey Otts in Kotlin Community
А ну если прям тут же делать лаунч то да
источник

AM

Andrew Mikhaylov in Kotlin Community
Можете вместо лонча задачу на экекьютор закинуть, тогда скоуп не нужен. Я правда вопрос не очень понял)
источник

AO

Alexey Otts in Kotlin Community
Там просто можно сделать inline функцию и разделить мух и котлеты
источник

AM

Andrew Mikhaylov in Kotlin Community
Ну в случае решения под корутины логично вот это вот TODO заменить на вызов параметра типа suspend () -> T, да
источник

QH

Quantum Harmonizer in Kotlin Community
Тут правда стрёмно получается, что функция может вернуть дефёрред от чужого контекста.
источник

A

Aleksei🐈 in Kotlin Community
Вот лучше скажите почему есть корутины и в стандартной либе (но сильно урезанные) и в kotlinx
источник

AL

Alexander Levin in Kotlin Community
Aleksei🐈
Вот лучше скажите почему есть корутины и в стандартной либе (но сильно урезанные) и в kotlinx
Если вкратце - в стандартной либе только самое необходимое, а в библиотеке уже всё для полноценной работы с корутинами.
источник

A

Aleksei🐈 in Kotlin Community
Alexander Levin
Если вкратце - в стандартной либе только самое необходимое, а в библиотеке уже всё для полноценной работы с корутинами.
Ну понятно да, но в чем такая хитрая задумка была?
источник

AL

Alexander Levin in Kotlin Community
Aleksei🐈
Ну понятно да, но в чем такая хитрая задумка была?
Хитрая задумка, как я понимаю, в том, чтобы не перегружать стандартную либу. Да, есть много важных вещей (корутины, io, datetime), но это не всегда нужно, поэтому если не касается самого важного (базовые типы, коллекции и тд), то возможно лучше отделить.
источник

AM

Andrew Mikhaylov in Kotlin Community
Ну и плюс релизы внешней либы не прибиты гвоздями к релизам языка.
источник

A

Aleksei🐈 in Kotlin Community
А почему тогда не стали во внешней либе наращивать функционал базовой а сделали новый концепт. Я так понимаю эти варианты реализации несовместимы
источник

AM

Andrew Mikhaylov in Kotlin Community
Aleksei🐈
А почему тогда не стали во внешней либе наращивать функционал базовой а сделали новый концепт. Я так понимаю эти варианты реализации несовместимы
В смысле несовместимы? kotlinx.coroutines опирается на kotlin.coroutines.
источник

A

Aleksei🐈 in Kotlin Community
Andrew Mikhaylov
В смысле несовместимы? kotlinx.coroutines опирается на kotlin.coroutines.
Да? Я просто нигде в примерах kotlinx не замечал функции из kotlin
источник