Ny Kotlin med when-sætning, der tjekker helligdagene

23. november 2021 kl. 10:15
Ny Kotlin med when-sætning, der tjekker helligdagene
Illustration: Bigstock/REDPIXEL.PL.
Version 1.6 af Jetbrains' sprog kommer med nye sprogfaciliteter og hukommelseshåndtering til native.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

En ny udgave af JVM-sproget Kotlin har set dagens lys, og den er fuld af nyheder. Det skriver sprogets marketingchef Alina Grebenkina fra Jetbrains i et blogindlæg.

En ny sprogfacilitet er en when-sætning, der holder styr på, at alle muligheder i en forseglet klasse er udtømt. En forseglet klasse er - lidt i stil med samme facilitet i de seneste Java-udgaver - en klasse, der udpeger sine mulige facetter.

Det er nemmest at forstå med et eksempel, hentet fra blogindlægget. Man kunne modellere forskellige måder at håndtere kontakter på, på denne facon:

  1. sealed class Contact {
  2. data class PhoneCall(val number: String) : Contact()
  3. data class TextMessage(val number: String) : Contact()
  4. data class InstantMessage(val type: IMType, val user: String) :
  5. Contact()
  6. }

When-sætningen findes allerede i en mere begrænset version. Med den udvidede when-sætning sikres det, at der så at sige er malet i alle kroge - at alle muligheder i en forgrening er udtømt:

  1. fun Rates.computeMessageCost(contact: Contact): Cost =
  2. when (contact) { // ERROR: 'when' expression must be exhaustive
  3. is Contact.PhoneCall -> phoneCallCost
  4. is Contact.TextMessage -> textMessageCost
  5. }

JVM-platformen

Java er et programmeringsprog med en tilhørende virtuel maskine (VM), som benyttes til at afvikle programmer kompileret til byte-kode, en slags virtuelle cpu-instruktioner.

Andre sprog kan også kompileres til byte-kode, og denne verden omtales undertiden som JVM-platformen. Mange af disse sprog kan også benytte biblioteker skrevet i Java.

Ud over Java og Kotlin byder platformen på mange andre sprog, såsom Scala, Groovy og Clojure.


Hvis Contact-klassen udvides med en ny kontakt-mulighed senere, og man glemmer at håndtere den i forgreningen, får man en fejlmeddelelse.

Artiklen fortsætter efter annoncen

Blandt andre nyheder er eksperimentel hukommelseshåndtering for Kotlin Native, der compiler programmer i sproget til systemkode, som eksekverbare filer.

Den nye hukommelsesstyring ophæver de eksisterende restriktioner for objektdeling mellem tråde og kræver ikke annotationer i koden for at undgå lækager.

I samme boldgade er det nu muligt at compile til Windows med Mingw-miljøet på alle platforme.

Ingen kommentarer endnu.  Start debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger