Компания JetBrains рассказала о грядущем крупном обновлении Kotlin в 2021 году. Язык программирования получит версию 1.5, в которую войдет поддержка sealed-интерфейсов, inline-классов и IR-компилятора для JVM.
Как сообщают разработчики в своем блоге, для пользователей IntelliJ IDEA и Android Studio установка Kotlin 1.5 пройдет автоматически, как только версия будет выпущена. Также присутствует возможность ручного обновления по инструкции. Новый релиз языка программирования поддерживается в Android Studio 4.2.0, Arctic Fox Canary 15 и новее.
Улучшенная работа с типами данных
По опросу JetBrains, самым ожидаемым нововведением в Kotlin стало появление новых стабильных API для целочисленных типов без знака, их диапазонов и прогрессий. Компания анонсировала расширение числа возможностей стандартной библиотеки. Появились функции-расширения для java.nio.file.Path, которые задействуют современный неблокирующий ввод/вывод Java.
В Kotlin 1.5 будут представлены улучшения для работы со строковыми типами String и Char. Новый API содержит инструменты для изменения регистра строк и символов, не зависящие от локали, а также добавляет новые функции, которые позволяют преобразовывать символы в их целочисленные коды и числовые значения.
Больше инструментов программирования
Версия Kotlin 1.5 поддерживает стабильные возможности языка, которые впервые были представлены в превью-релизе. Теперь программисты смогут использовать новые классы Record из Java. При написании кода на Java можно подключать классы Kotlin как записи, которые представлены как классы данных и отмечены аннотацией @JvmRecord.
Появилась возможность создавать изолированные интерфейсы. По аналогии с классами, для их использования необходимо указать модификатор sealed. Все реализации такого интерфейса известны во время компиляции. Сами изолированные классы также улучшены: в старых версиях языка все подклассы было нужно размещать в одном файле с sealed-классами. После обновления их можно помещать в любом файле той же единицы компиляции и того же пакета.
Добавлены встроенные inline-классы, которые способны хранить только значения. Их применение позволяет избежать расходов, связанных с необходимостью выделения памяти.
Новый компилятор
В Kotlin 1.5 добавлена стабильная версия IR-компилятора для JVM. Она была доступна и в предыдущих релизах, но сейчас станет использоваться по умолчанию. Благодаря улучшению Java Virtual Machine появится компиляция SAM-адаптеров и лямбда-функций в динамические вызовы.