JetBrains выпустила Kotlin 1.8.20

—

от автора

JetBrains выпустила обновление языка программирования Kotlin 1.8.20. Разработчики могут протестировать обновлённую версию компилятора Kotlin K2 и использовать автоматическую компиляцию кода в WebAssembly.

В версии Kotlin 1.8.20 компилятор Kotlin K2 обеспечивает альфа-поддержку компилятора JS IR и работает с языковой версией Kotlin 2.0. Для активации новой версии K2 необходимо использовать новую языковую версию со следующей опцией -language-version 2.0.

Также можно указать это в файле build.gradle(.kts):

kotlin {    sourceSets.all {        languageSettings {            languageVersion = "2.0"        }    } }

Команда Kotlin просит разработчиков принять активное участие в процессе тестирования. Свои отзывы можно оставить в официальном канале Slack. Также можно включить опцию «Отправлять статистику использования», что поможет специалистам из JetBrains автоматически получать анонимные данные об использовании K2.

В версии Kotlin 1.8.20 разработчики добавили новый способ для получения значений из классов Enum. Раньше для этих целей использовался метод values(), возвращавший массив констант текущего перечисления. Такой способ приводил к проблемам с производительностью в Java и Kotlin, а многие API требуют, чтобы возвращаемые значения были изменяемыми.

Для решения проблемы в классах Enum появилось свойство entries, которое возвращает предварительно распределённый список констант. Свойство следует использовать вместо values(), но поддержку последнего пока оставили:

enum class Color(val colorName: String, val rgb: String) {    RED("Red", "#FF0000"),    ORANGE("Orange", "#FF7F00"),    YELLOW("Yellow", "#FFFF00") }   @OptIn(ExperimentalStdlibApi::class) fun findByRgb(rgb: String): Color? = Color.entries.find { it.rgb == rgb }

Поддержка entries пока отключена по умолчанию, и её надо активировать вручную. 

В обновлении добавили поддержку компиляции кода на Kotlin в WebAssembly. Разработчики JetBrains считают, что функция поможет создавать новые решения, высокопроизводительные веб-приложения и запускать код в браузере.

Для активации функции Kotlin/Wasm необходимо следующим образом обновить файл build.gradle(.kts):

plugins {     kotlin("multiplatform") version "1.8.20-RC2" }  kotlin {     wasm {         binaries.executable()         browser {         }     }     sourceSets {         val commonMain by getting         val commonTest by getting {             dependencies {                 implementation(kotlin("test"))             }         }         val wasmMain by getting         val wasmTest by getting     } }

Вместе с этим необходимо подготовить целевую среду выполнения кода. В комментариях к выпуску предусмотрены подробные инструкции для Chrome, Firefox и Edge.

С полным списком изменений можно ознакомиться в блоге JetBrains или в записях к релизу в репозитории GitHub. Вместе с Kotlin компания обновила  PyCharm, IntelliJ IDEA, WebStorm, Aqua IDE, GoLand и другие свои продукты.


ссылка на оригинал статьи https://habr.com/ru/articles/726902/