ли теперь писать inline class? Смотрю в сэмплах было @JvmInline value class
> 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 теперь будут.
Куда отменили? :)
https://t.me/kotlin_lang/235013
Суть осталась та же, фактически. Переименовали inline в value и для JVM доступна опция инлайна.
Вот тут расшифровка https://kotlinlang.org/docs/components-stability.html#stability-levels-explained
ага, они по факту ведут себя похожим образом, но суть инлайн классов в том, чтобы не создавать инстанс под обёртку, а суть велью класса в том, что объект identity free и инлайнить его никто не обещает
В общем да, но фичу просто расширили. > 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, но оптимизаций пока может не быть.
Смотря зачем
Экспериментал - только петпроджекты, спасибо. Хотя корутины я завозил еще эксперементальные и нормально было.
Миграции с экспериментальными корутинами иногда болючие были:)
Во времена корутин ещё не умели вводить экспериментальные фичи так, чтобы не сломать всё потом при выходе окончательной версии
Чтобы функция, которая определенные ключи принимает, не принимала любые стринги. Не хочется как в джаве создавать аннотации и везде их писать.
inline classes не экспериментальные жи
котлин 1.5 так не пишет
Ну так для этого просто класс-обертку делать. Можно делать @JvmInline value class, но учтите, что результат identity free, их нельзя сравнивать по ссылке. Это основное свойство велью типов.
Суть экспериментальности в том, что всё может измениться. Сейчас уже известен окончательный вариант (и он не такой, как на скрине, кстати).
Обсуждают сегодня