Sytuacja kobiet w IT w 2024 roku
10.05.20213 min
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ść.

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>