Wypełnij Badanie Społeczności IT 2025
Bulldogjob
Bulldogjob

Jest już wydanie Kotlina 1.5

Najnowsza wersja Kotlina, czyli 1.5.0, zawiera takie nowości i usprawnienia, jak stabilna obsługa rekordów JVM i zmiany poprawiające wydajność.
10.05.20213 min
Jest już wydanie Kotlina 1.5

Kotlin 1.5.0 to najnowsza aktualizacja języka od JetBrains, która jest obecnie dostępna jako wydanie produkcyjne. Do najważniejszych rzeczy, które pojawiły się w tym wydaniu należy stabilna obsługa rekordów JVM oraz interfejsów zapieczętowanych. Dokonano również wielu zmian, jeśli chodzi o Kotlin/JVM oraz pisany kod. W tym artykule dokładnie przyjrzymy się tym najważniejszym. 

Nowości w Kotlinie

Poniżej dokładniej przyjrzymy się wszystkim ważniejszym funkcjom oraz zmianom w najnowszej funkcji, dotyczącym zmian w kodzie i nie tylko. 


Obsługa klas rekordów z Javy

Twórcy Kotlina twierdzą, że Java bardzo szybko się rozwija. Wprowadzenie obsługi funkcji rekordów ma więc zapewnić, że Kotlin pozostanie interoperacyjny z wcześniej wspomnianą Javą. Sama obsługa polega zaś na tym, że w kodzie Kotlina będzie można korzystać z klas rekordów w taki sam sposób, w jaki korzysta się z typowych klas z właściwościami. Klasę Kotlina można zamienić w rekord, gdy użyjemy klasy data i oznaczymy ją adnotacją @JvmRecord. Oto przykład kodu pochodzący ze strony opisującej funkcję:

@JvmRecord
data class User(val name: String, val age: Int)


Zapieczętowane interfejsy

Interfejsy w Kotlinie posiadają teraz modyfikator sealed, który z interfejsami działa w taki sam sposób, jak z klasami. Poniżej przykład kodu, który wykorzystuje zapieczętowane interfejsy do stworzenia wyczerpującego wyrażenia when:

fun draw(polygon: Polygon) = when (polygon) {
   is Rectangle -> // ...
   is Triangle -> // …
   // else is not needed - all possible implementations are covered
}


Hierarchie klas 

Klasy zapieczętowane mogą mieć teraz podklasy we wszystkich plikach tej samej jednostki kompilacyjnej oraz tego samego pakietu. Poprzednio wszystkie podklasy musiały pojawić się w tym samym pliku.

Bezpośrednie podklasy mogą być na najwyższym poziomie w hierarchii lub znajdować się w jakiejkolwiek liczbie innych nazwanych klas, interfejsów lub obiektów. Podklasy danej klasy zapieczętowanej muszą mieć odpowiednio kwalifikowaną nazwę - nie mogą być obiektami lokalnymi ani anonimowymi.


Kotlin/JVM

Kotlin JVM również otrzymał szereg usprawnień, zarówno jeśli chodzi o zmiany wewnątrz, jak i te, które dotyczą użytkowników. Najważniejsze z nich, to stabilny bakcend JVM IR, 1.8 jako nowy domyślny target dla JVM, eksperymentalna obsługa kompilacji lambdy z Kotlina do invokedynamic.

Kotlin wspiera teraz adnotacje Javy dotyczące obsługi null za pomocą nowej adnotacji. Nowa wersja wprowadza szereg ulepszeń tej funkcji, m.in. odczytywanie adnotacji, które są nullami, w argumentach typu i w skompilowanych bibliotekach Javy, z których korzystamy jako zależności.


Inne zmiany

Jeśli zaś chodzi o inne usprawnienia, które posiada teraz Kotlin, to mamy bardziej stabilny Kotlin/Native, gdzie wprowadzono usprawnienia dotyczące wydajności oraz dezaktywowano memory leak checker. Jeśli chodzi natomiast o zmiany w Kotlin/JS to mamy tutaj aktualizację webpack do wersji 5 oraz nowe frameworki i biblioteki dla kompilatora IR. 

W nowym Kotlinie wprowadzono również nowości w bibliotece kotlin-test. Są to m.in. uproszczone korzystanie z zależności testowych oraz automatyczny wybór frameworku testowego dla zestawów źródłowych Kotlin/JVM.

Pełna lista zmian wraz z ich opisem znajduje się tutaj. Nową wersję Kotlina możesz natomiast pobrać stąd

<p>Loading...</p>