Size: a a a

Kotlin Community

2020 February 24

NK

Nikita Krutko in Kotlin Community
kirill
Так переопредели метод и усе
Ну это несколько не в тему в моём контексте, хотя я подумаю над этим, мб и правда имеет смысл так сделать, спасибо
источник

AL

Alexander Levin in Kotlin Community
Ну, с ними интересно - они кажутся классными и они такие и есть, но иногда лучше остановиться и перейти к обычным. Всякие let->run ?: run чревато например тем, что в первом run тоже будет nullable тип и тогда выполнятся обе ветки.
источник

D

Denys in Kotlin Community
Andrew Mikhaylov
Проверять, правда ли прошло 1..50, не надо, приходит ровно то, что обещано по условию. Обращать внимание надо для того, чтобы выбрать алгоритм для сложных задач -- для 1..50 подойдёт хоть решение перебором, для намного бОльших чисел квадратичная сложность (к примеру, для каждого элемента ещё раз пробежаться по всем элементам) уже не подходит.
И чтобы оценить структуры данных. Бывают задачи, где можно проглядеть BigInt и завалиться на скрытых тестах.
источник

D

Denys in Kotlin Community
Danil Yudov
есть несколько тупых вопросов по мультиплатформе. допустим, у меня есть библиотека без платформенных зависимостей. могу ли я, не перечисляя конкретные targets (jvm, js, mingw...), сделать так чтоб её можно было использовать на любой платформе? если да, как это указать грэдлу?
Нужно делать common модуль.
источник

AM

Andrew Mikhaylov in Kotlin Community
Denys
И чтобы оценить структуры данных. Бывают задачи, где можно проглядеть BigInt и завалиться на скрытых тестах.
👍
источник

NK

Nikita Krutko in Kotlin Community
Alexander Levin
Ну, с ними интересно - они кажутся классными и они такие и есть, но иногда лучше остановиться и перейти к обычным. Всякие let->run ?: run чревато например тем, что в первом run тоже будет nullable тип и тогда выполнятся обе ветки.
Хорошо, спасибо
источник

AM

Andrew Mikhaylov in Kotlin Community
Но пугаться этого всего не стоит, не стоит требование решить все задачи, если переживаете, что что-то звучит страшно и вы не решите — это совсем не проблема :)
источник

D

Danil Yudov in Kotlin Community
Danil Yudov
есть несколько тупых вопросов по мультиплатформе. допустим, у меня есть библиотека без платформенных зависимостей. могу ли я, не перечисляя конкретные targets (jvm, js, mingw...), сделать так чтоб её можно было использовать на любой платформе? если да, как это указать грэдлу?
и вообще нет нормального понимания, как устроена публикация мультиплатформенных библиотек и дальнейшая работа с ними. как я понимаю, в любом случае собирается jar файл? он содержит те же class файлы как и для jvm? как в дальнейшем происходит работа с этим jar, когда я хочу использовать такую библиотеку например с kotlin-js?
источник

AM

Andrew Mikhaylov in Kotlin Community
Danil Yudov
и вообще нет нормального понимания, как устроена публикация мультиплатформенных библиотек и дальнейшая работа с ними. как я понимаю, в любом случае собирается jar файл? он содержит те же class файлы как и для jvm? как в дальнейшем происходит работа с этим jar, когда я хочу использовать такую библиотеку например с kotlin-js?
class-файлы есть только на JVM, на остальных платформах публикуются специфические модули (kjsm для JS и knm для Native). Гредловые публикации создаются автоматически, ЕМНИП, первым делом надо настроить репозитории.
источник

D

Denys in Kotlin Community
Согласен с Андреем, что первый вариант ок, но справедливости ради .Companion явно писать не надо.

В общем лучше полайкайте тикеты, чтобы можно было вообще никогда форматом не пользоваться:
https://youtrack.jetbrains.com/issue/KT-9374
https://youtrack.jetbrains.com/issue/KT-21644
источник

D

Danil Yudov in Kotlin Community
Denys
Нужно делать common модуль.
что я упускаю? в такой конфигурации ни jvm, ни js проект не может подцепить библиотеку. только если я укажу конкретные sourceSets для каждой платформы
источник

D

Denys in Kotlin Community
Andrew Mikhaylov
class-файлы есть только на JVM, на остальных платформах публикуются специфические модули (kjsm для JS и knm для Native). Гредловые публикации создаются автоматически, ЕМНИП, первым делом надо настроить репозитории.
Чат, а набросайте еще ваших любимых / интересных тикетов на полайкать.
источник

AM

Andrew Mikhaylov in Kotlin Community
Denys
Чат, а набросайте еще ваших любимых / интересных тикетов на полайкать.
С реплаем мимо :)
источник

AM

Andrew Mikhaylov in Kotlin Community
Andrew Mikhaylov
class-файлы есть только на JVM, на остальных платформах публикуются специфические модули (kjsm для JS и knm для Native). Гредловые публикации создаются автоматически, ЕМНИП, первым делом надо настроить репозитории.
JVM, вполне вероятно, тоже перейдёт со временем / опционально на публикацию своих IR-модулей, но это не сейчас точно.
источник

D

Denys in Kotlin Community
Andrew Mikhaylov
С реплаем мимо :)
🌑
источник

D

Danil Yudov in Kotlin Community
Andrew Mikhaylov
class-файлы есть только на JVM, на остальных платформах публикуются специфические модули (kjsm для JS и knm для Native). Гредловые публикации создаются автоматически, ЕМНИП, первым делом надо настроить репозитории.
knm специфичны для каждой архитектуры?
источник

AM

Andrew Mikhaylov in Kotlin Community
Danil Yudov
что я упускаю? в такой конфигурации ни jvm, ни js проект не может подцепить библиотеку. только если я укажу конкретные sourceSets для каждой платформы
В текущем виде надо обязательно регистрировать платформы, одного common-модуля недостаточно. Даже если у вас сорцов для них нет.
источник

D

Denys in Kotlin Community
Danil Yudov
что я упускаю? в такой конфигурации ни jvm, ни js проект не может подцепить библиотеку. только если я укажу конкретные sourceSets для каждой платформы
Если вы прямо в проекте хотите использовать код из common - нужно обьявлять source set для каждой платформы чтобы компилятор знал что вы хотите билдить. Код можно там не писать.
источник

AM

Andrew Mikhaylov in Kotlin Community
Danil Yudov
knm специфичны для каждой архитектуры?
kjsm — Kotlijn/JS Module, knm — Kotlin/Native Module, очевидно.

Но это impementation details, не стоит на это закладываться.
источник

AM

Andrew Mikhaylov in Kotlin Community
Возможно, с окончанием переезда на IR будет иначе. Возможно, нет. Я не интересовался.
источник