Size: a a a

Kotlin Community

2020 January 02

AN

Alexander Nozik in Kotlin Community
Maksim Masiukevich
ну с param\return, и уж тем более в колине, согласен.
а вот всякие поведенческие моменты в кол-ве 9 штук - ну такое
С этим все согласились
источник

BP

Bogdan Panchenko in Kotlin Community
Sergey Zolotov
докблоки в духе @param/@return с дублированием типа + имени особой смысловой нагрузки тоже не будут нести

а дока быстро потеряет актуальность, либо там какая-то чушь будет написана. мне проще по коду пробежаться почитать что происходит

и на весь проект/сервис/компонент иметь сгенеренный mkdoc какой-нибудь с общим описанием о чем оно
+
источник

v

vtchkn in Kotlin Community
Коллеги, скажите, как можно передать в параметры функции suspend fun? Я хочу сделать экстеншн типа

fun <T> CoroutineScope.processJob(suspend block: () -> T, result: (T) -> Unit): Deferred<Unit> {
   return async {
       
result(block())
   }
}
источник

(

( in Kotlin Community
vtchkn
Коллеги, скажите, как можно передать в параметры функции suspend fun? Я хочу сделать экстеншн типа

fun <T> CoroutineScope.processJob(suspend block: () -> T, result: (T) -> Unit): Deferred<Unit> {
   return async {
       
result(block())
   }
}
block: suspend () -> T
источник

AM

Andrew Mikhaylov in Kotlin Community
vtchkn
Коллеги, скажите, как можно передать в параметры функции suspend fun? Я хочу сделать экстеншн типа

fun <T> CoroutineScope.processJob(suspend block: () -> T, result: (T) -> Unit): Deferred<Unit> {
   return async {
       
result(block())
   }
}
Перенесите suspend за двоеточие, это часть типа.
источник

v

vtchkn in Kotlin Community
Andrew Mikhaylov
Перенесите suspend за двоеточие, это часть типа.
спасибо!
источник

QH

Quantum Harmonizer in Kotlin Community
Есть @PublishedApi internal constructor и public inline фабрика, у них одинаковые имена. Можно как-то из тестов вызвать фабрику? Сейчас выбирается конструктор.
источник

QH

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

AM

Andrew Mikhaylov in Kotlin Community
Кроме дополнительной @PublishedApi internal фабрики ничего в голову не приходит. :)
источник

QH

Quantum Harmonizer in Kotlin Community
ИСПОРТИЛ@ЗАПУШИЛ
источник
2020 January 03

AI

Arkadii Ivanov in Kotlin Community
Quantum Harmonizer
Могу испортить сигнатуру конструктора, мол, всё равно её никто не видит. Но жаль делать это чисто для тестов.
Не очень в курсе контекста, но PublishedApi - это effectively public. Изменение сигнатуры нарушает бинарную совместимость.
источник

BV

Boris Vanin in Kotlin Community
Arkadii Ivanov
Не очень в курсе контекста, но PublishedApi - это effectively public. Изменение сигнатуры нарушает бинарную совместимость.
Хорошо писать api для скриптов 🤔
источник

AM

Andrew Mikhaylov in Kotlin Community
Arkadii Ivanov
Не очень в курсе контекста, но PublishedApi - это effectively public. Изменение сигнатуры нарушает бинарную совместимость.
Я почти уверен, что речь о библиотеке с версией в районе 0.0.9, так что вряд ли это большой консёрн :) Но замечание дельное, конечно.
источник

QH

Quantum Harmonizer in Kotlin Community
Arkadii Ivanov
Не очень в курсе контекста, но PublishedApi - это effectively public. Изменение сигнатуры нарушает бинарную совместимость.
Я в любом случае менял конструктор на фабрику.)
источник

A

Alexey in Kotlin Community
Други, привет! Есть вопрос по корутинам – почему тест ниже падает? Я бы ожидал что runCatching поймает исключение и вернет значение из второй корутины.

@Test
   fun test1111() = runBlockingTest {
       coroutineScope {
           val a1 = async {
               throw Exception();
           }
           val a2 = async {
               2
           }

           val result = Result
               .runCatching { a1.await() }
               .getOrElse { a2.await() }

           assertEquals(result, 2)
       }
   }
источник

A

Alexey in Kotlin Community
Если есть более удачное место чтобы задать вопрос я буду благодарен если вы его подскажете )
источник

BP

Bogdan Panchenko in Kotlin Community
Alexey
Други, привет! Есть вопрос по корутинам – почему тест ниже падает? Я бы ожидал что runCatching поймает исключение и вернет значение из второй корутины.

@Test
   fun test1111() = runBlockingTest {
       coroutineScope {
           val a1 = async {
               throw Exception();
           }
           val a2 = async {
               2
           }

           val result = Result
               .runCatching { a1.await() }
               .getOrElse { a2.await() }

           assertEquals(result, 2)
       }
   }
Для начала стоит поставить задержку в асинках
источник

AM

Andrew Mikhaylov in Kotlin Community
Дык тут речь о том, как себя исключения с асинками ведут. (Я, к своему стыду, до сих пор не нашёл времени изучить, что с ними происходит после добавления structured concurrency, так как асинками не пользуюсь особо).
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
Дык тут речь о том, как себя исключения с асинками ведут. (Я, к своему стыду, до сих пор не нашёл времени изучить, что с ними происходит после добавления structured concurrency, так как асинками не пользуюсь особо).
Ну так исключения сразу бросится
источник

AM

Andrew Mikhaylov in Kotlin Community
Все, кроме cancellation-ов?
источник