Size: a a a

Kotlin Community

2020 May 22

AS

Aleksandr Semyanniko... in Kotlin Community
Т.е. должен ли я думать о том что код может исполняться в разных потоках когда использую корутины?
источник

BP

Bogdan Panchenko in Kotlin Community
Aleksandr Semyannikov
Кстати про корутины, а есть какая-нибудь дока, которая рассматртвает корутины с т.з. модели памяти?
Не видел. Но что конкретно понимаете по "моделью памяти"
источник

BP

Bogdan Panchenko in Kotlin Community
Aleksandr Semyannikov
Т.е. должен ли я думать о том что код может исполняться в разных потоках когда использую корутины?
Нет не должны, вы должны думать про контекст исполнения
источник

BP

Bogdan Panchenko in Kotlin Community
Например работа с ui должна выполнится в контексте ui, также использовать скопы для ограничивается жизни копунтин
источник

AE

Alexandr Emelyanov in Kotlin Community
коллеги, немного концептуальный вопрос по мультиплатформе и expect

есть java класс для биндинга, у него есть статик методы, но они не биндятся в компаньон через actual, отсюда вопрос: как красивее и практичнее?
1. top level в файле
2. object <ClassName>Utils
3. object <ClassName>Ops
4. еще варианты

проблема первого метода в том, что таких классов достаточно, они в одном пакете, имеют статик методы с одинаковой сигнатурой и могут использоваться в остальном коде совместно

я бы объявил просто объект с таким же именем как класс, но нельзя(
источник

AE

Alexandr Emelyanov in Kotlin Community
@noraltavir у тебя хороший опыт мультиплатформы, как делаешь?
источник

AE

Alexandr Emelyanov in Kotlin Community
со стороны js та же проблема
источник

AE

Alexandr Emelyanov in Kotlin Community
там ts биндинги со статиками
источник

AE

Alexandr Emelyanov in Kotlin Community
Aleksandr Semyannikov
Т.е. должен ли я думать о том что код может исполняться в разных потоках когда использую корутины?
в корутинах бесплатные (почти) методы синхранизации
источник

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
коллеги, немного концептуальный вопрос по мультиплатформе и expect

есть java класс для биндинга, у него есть статик методы, но они не биндятся в компаньон через actual, отсюда вопрос: как красивее и практичнее?
1. top level в файле
2. object <ClassName>Utils
3. object <ClassName>Ops
4. еще варианты

проблема первого метода в том, что таких классов достаточно, они в одном пакете, имеют статик методы с одинаковой сигнатурой и могут использоваться в остальном коде совместно

я бы объявил просто объект с таким же именем как класс, но нельзя(
Есть ещё вариант Myclass.Companion.foo
источник

AS

Aleksandr Semyanniko... in Kotlin Community
Bogdan Panchenko
Например работа с ui должна выполнится в контексте ui, также использовать скопы для ограничивается жизни копунтин
Т.е. к примеру, если я делаю flow, который использует suspend функцию для получения объектов, я могу смело читать данные из объекта без использования с моей стороны механизмов синхронизаций, как делал бы на java?
источник

AN

Alexander Nozik in Kotlin Community
Aleksandr Semyannikov
Т.е. должен ли я думать о том что код может исполняться в разных потоках когда использую корутины?
Думать о потоках надо, но я не понял, при чем тут модель памяти
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Есть ещё вариант Myclass.Companion.foo
объявленный в мультиплатформе компаньен не биндится в actual ибо там нет компаньена, а набор статиков. по факту же на стороне котлина синглтон без статиков
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Думать о потоках надо, но я не понял, при чем тут модель памяти
я думаю отсылка к jvm и happens before
источник

BP

Bogdan Panchenko in Kotlin Community
Aleksandr Semyannikov
Т.е. к примеру, если я делаю flow, который использует suspend функцию для получения объектов, я могу смело читать данные из объекта без использования с моей стороны механизмов синхронизаций, как делал бы на java?
Да, но если у вас блокирующие операции то нужно уже подумать, есть Io Dispatcher, но он не всегда уместен
источник

BP

Bogdan Panchenko in Kotlin Community
Alexander Nozik
Думать о потоках надо, но я не понял, при чем тут модель памяти
+
источник

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
объявленный в мультиплатформе компаньен не биндится в actual ибо там нет компаньена, а набор статиков. по факту же на стороне котлина синглтон без статиков
Я про экстеншен на компаньон. Если есть класс, то методы его компаньона можно сделать экстеншенами
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Я про экстеншен на компаньон. Если есть класс, то методы его компаньона можно сделать экстеншенами
ты мой спаситель :)
источник

AE

Alexandr Emelyanov in Kotlin Community
сейчас опробую
источник

AN

Alexander Nozik in Kotlin Community
Разумеется в комоне должен быть хотя бы пустой компаньон
источник