Size: a a a

Kotlin Community

2020 August 19

EP

Eugene P. in Kotlin Community
Алексей Ершов
вот тут есть несколько картинок, которые более точно поясняют, где какой скоуп, джоб и контекст: https://medium.com/@elizarov/coroutine-context-and-scope-c8b255d59055
Спасибо
источник

EP

Eugene P. in Kotlin Community
Эх, блин. Оказывается Job() + coroutineContext != coroutineContext + Job()
источник

EP

Eugene P. in Kotlin Community
Вот где собака зарыта была
источник

QH

Quantum Harmonizer in Kotlin Community
😱
источник

AN

Alexander Nozik in Kotlin Community
Eugene P.
Эх, блин. Оказывается Job() + coroutineContext != coroutineContext + Job()
таки да. Это еще один пример проблем с перегрузкой операторов
источник

EP

Eugene P. in Kotlin Community
В общем, если создать дочерний скоуп таким образом
CoroutineScope(coroutineContext + Job(coroutineContext[Job]))
то работает идентично
coroutineScope{}
источник

Ю

Юрий in Kotlin Community
Подскажите пожалуйста как в Kotlin Gradle DSL конфигурить зависимости от модулей проекта
Обычно я делаю это так
"compile"("org.eclipse.jetty:jetty-server:8.1.16.v20140903") {
   // Some code
}
Но если попытаться провернуть такую же штуку с проектом типа
"compile"(rootProject) {
   exclude("org.mortbay.jetty")
}
Выяснится что такой метод не определен. Есть какой то метод, который принимает кложур не сильно одаренный генериками и как то не очень хочется его использовать.
источник

AM

Andrew Mikhaylov in Kotlin Community
Юрий
Подскажите пожалуйста как в Kotlin Gradle DSL конфигурить зависимости от модулей проекта
Обычно я делаю это так
"compile"("org.eclipse.jetty:jetty-server:8.1.16.v20140903") {
   // Some code
}
Но если попытаться провернуть такую же штуку с проектом типа
"compile"(rootProject) {
   exclude("org.mortbay.jetty")
}
Выяснится что такой метод не определен. Есть какой то метод, который принимает кложур не сильно одаренный генериками и как то не очень хочется его использовать.
А явный add("compile", rootProject) пробовали?
источник

Ю

Юрий in Kotlin Community
да
там в целом все те же варианты что и с перегрузками invoke у строки
источник

Ю

Юрий in Kotlin Community
3 сверху вариант это просто приколы идейки
там генерик с нижней границой ModuleDependency а Project от этого не наследует
есть класс DefaultProjectDependency но он какой то слишком страшный чтобы создавать его в билд скрипте кмк
источник

AM

Andrew Mikhaylov in Kotlin Community
Юрий
да
там в целом все те же варианты что и с перегрузками invoke у строки
Так а второй вариант с проджектом -- это не то, что вам надо?
источник

Ю

Юрий in Kotlin Community
нет он выглядит вот так
источник

Ю

Юрий in Kotlin Community
а кложур мне не хочется юзать
как то слишком некрасиво
источник

VP

Vladimir Petrakovich in Kotlin Community
Юрий
нет он выглядит вот так
Ну вот это должно работать
источник

VP

Vladimir Petrakovich in Kotlin Community
А, ну только надо как-то Project в ProjectDependency превратить
источник

Ю

Юрий in Kotlin Community
да и в этом собственно проблема
источник

VP

Vladimir Petrakovich in Kotlin Community
А у DependencyHandler разве нет метода add(), принимающего Any?
источник

VP

Vladimir Petrakovich in Kotlin Community
Юрий
да
там в целом все те же варианты что и с перегрузками invoke у строки
А, вот же он, первый
источник

Ю

Юрий in Kotlin Community
есть но в качестве конфигуратора он принимает кложур
с которым немного неудобно работать
источник

VP

Vladimir Petrakovich in Kotlin Community
Юрий
есть но в качестве конфигуратора он принимает кложур
с которым немного неудобно работать
А, вам ещё конфигурировать надо?
А если add(..).apply { .. }
источник