Size: a a a

2020 March 01

AN

Alexander Nozik in Kotlin Moscow
Sergei Samoilov
Это если мы используем flow. А если мы просто проходим список?
Тогда чего делать аналогию с реактивным стримами?
источник

AN

Alexander Nozik in Kotlin Moscow
По-моему кстати есть либы с отдельным Either
источник

SS

Sergei Samoilov in Kotlin Moscow
Alexander Nozik
Тогда чего делать аналогию с реактивным стримами?
Я хотел показать, что без обертки в каком-нибудь виде с эксепшенами может быть тяжело.
источник

AN

Alexander Nozik in Kotlin Moscow
Sergei Samoilov
Я хотел показать, что без обертки в каком-нибудь виде с эксепшенами может быть тяжело.
Ну тут вопрос, собственно, производительности. Резулт запретили использовать не из корутин потому, что тогда его инлайновость протухает
источник

SS

Sergei Samoilov in Kotlin Moscow
Alexander Nozik
Ну тут вопрос, собственно, производительности. Резулт запретили использовать не из корутин потому, что тогда его инлайновость протухает
Да, и поэтому со штуками типа Either может быть удобно. Но тащить ради одного класса либу бессмысленно, я согласен.
источник

SS

Sergei Samoilov in Kotlin Moscow
Вообще, arrow - это перевод библиотеки cats из скалы. А та в свою очередь добавляет хаскель в скалу. :) Просто интересно, есть ли те смельчаки кто принес немного хаскеля в котлин . :))
источник

AN

Alexander Nozik in Kotlin Moscow
Sergei Samoilov
Вообще, arrow - это перевод библиотеки cats из скалы. А та в свою очередь добавляет хаскель в скалу. :) Просто интересно, есть ли те смельчаки кто принес немного хаскеля в котлин . :))
Есть, но получается никому не нужная фигня.
источник

SS

Sergei Samoilov in Kotlin Moscow
Alexander Nozik
Ну тут вопрос, собственно, производительности. Резулт запретили использовать не из корутин потому, что тогда его инлайновость протухает
Кстати, интересно, что занимает больше времени. Обёртка в виде Either или try catch. Ведь последний вызывает прерывание.
источник

AN

Alexander Nozik in Kotlin Moscow
Sergei Samoilov
Кстати, интересно, что занимает больше времени. Обёртка в виде Either или try catch. Ведь последний вызывает прерывание.
Either дорогой, потому что генерируется инстанс класса. try дешевый, а вот кстати throw как правило дорогой потому что стак-трейс генерится
источник

SS

Sergei Samoilov in Kotlin Moscow
Alexander Nozik
Either дорогой, потому что генерируется инстанс класса. try дешевый, а вот кстати throw как правило дорогой потому что стак-трейс генерится
Ну да. Мне кажется, что обертка вместо throw - это не такая уж и потеря производительности.
источник

SS

Sergei Samoilov in Kotlin Moscow
Особенно в энтерпрайзе
источник

AN

Alexander Nozik in Kotlin Moscow
Sergei Samoilov
Ну да. Мне кажется, что обертка вместо throw - это не такая уж и потеря производительности.
не мерял. Такие вещи без измерений бесполезны. Я только примерно объясняю, почему Result не разрешали в массах. Его быстро начнут использовать не по назначению
источник

SS

Sergei Samoilov in Kotlin Moscow
Надо в jmh затестить)
источник
2020 March 03

SR

Sergey R in Kotlin Moscow
В статье 15 года нашел, что  можно было создавать package facade. Может кто-то подсказать почему решили избавиться от этого?

File1.kt
@file:jvmName("Utils")
package foo.bar
 
fun foo() {...}

+++

File2.kt
@file:jvmName("Utils")
package foo.bar
 
fun bar() {...}

===
package foo.bar;
 
public class Utils {
    public static void foo() { File1.foo(); }
    public static void bar() { File2.bar(); }
}
источник

SM

Sergey Morgunov in Kotlin Moscow
От чего избавиться?
источник

SR

Sergey R in Kotlin Moscow
сейчас компиляция такого кода приведет к ошибке
источник

SM

Sergey Morgunov in Kotlin Moscow
источник

SM

Sergey Morgunov in Kotlin Moscow
@file:JvmName("Utils")
источник

SR

Sergey R in Kotlin Moscow
Ok, понятно, сейчас проблема решается с помощью @JvmMultifileClass
источник

Ⓢⓔⓡⓖ in Kotlin Moscow
Обещали сделать автоматический мигратор со старых версий Kt ☺
источник