169 похожих чатов

Можно ли использовать инлайн классы в проде? В чем эксперементальность? Надо

ли теперь писать inline class? Смотрю в сэмплах было @JvmInline value class

21 ответов

14 просмотров

> Inline classes are in Beta. They are almost stable, but migration steps may be required in the future. We'll do our best to minimize any changes you will have to make. We would appreciate your feedback on the inline classes feature in YouTrack.

александр писал, что инлайн отменили. только identity free теперь будут.

Denys
Куда отменили? :)

https://t.me/kotlin_lang/235013

Aλex Sokol
https://t.me/kotlin_lang/235013

Суть осталась та же, фактически. Переименовали inline в value и для JVM доступна опция инлайна.

Вот тут расшифровка https://kotlinlang.org/docs/components-stability.html#stability-levels-explained

Denys
Суть осталась та же, фактически. Переименовали inl...

ага, они по факту ведут себя похожим образом, но суть инлайн классов в том, чтобы не создавать инстанс под обёртку, а суть велью класса в том, что объект identity free и инлайнить его никто не обещает

Aλex Sokol
ага, они по факту ведут себя похожим образом, но с...

В общем да, но фичу просто расширили. > Kotlin 1.5 stabilizes the concept of inline classes and makes it a part of a more general feature: value classes. > Until now, “inline” classes constituted a separate language feature, but they are now becoming a specific JVM optimization for a value class with one parameter. Value classes represent a more general concept and will support different optimizations: inline classes now, and Valhalla primitive classes in the future when project Valhalla becomes available (more about this below). > The only thing that changes for you at the moment is syntax.

TL; DR: да, можно. Пишите @JvmInline value class в Android проекте и всё будет работать. Если у вас KMM - value class + expect, но оптимизаций пока может не быть.

Смотря зачем

Dmitry- Автор вопроса
Denys
Вот тут расшифровка https://kotlinlang.org/docs/c...

Экспериментал - только петпроджекты, спасибо. Хотя корутины я завозил еще эксперементальные и нормально было.

Dmitry
Экспериментал - только петпроджекты, спасибо. Хотя...

Миграции с экспериментальными корутинами иногда болючие были:)

Dmitry
Экспериментал - только петпроджекты, спасибо. Хотя...

Во времена корутин ещё не умели вводить экспериментальные фичи так, чтобы не сломать всё потом при выходе окончательной версии

Dmitry- Автор вопроса
Alexander Nozik
Смотря зачем

Чтобы функция, которая определенные ключи принимает, не принимала любые стринги. Не хочется как в джаве создавать аннотации и везде их писать.

Dmitry
screenshot

котлин 1.5 так не пишет

Dmitry
Чтобы функция, которая определенные ключи принимае...

Ну так для этого просто класс-обертку делать. Можно делать @JvmInline value class, но учтите, что результат identity free, их нельзя сравнивать по ссылке. Это основное свойство велью типов.

Dmitry
screenshot

Оно opt-in просит, это немного другое, чем maturity status

Dmitry
screenshot

Суть экспериментальности в том, что всё может измениться. Сейчас уже известен окончательный вариант (и он не такой, как на скрине, кстати).

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта