Ny Kotlin byder på bedre typeinferens
JVM-sproget Kotlin, der ifølge dets bagmænd bruges af over 60 procent af Android-udviklerne, er på vej med version 1.7.0, der har nået beta-stadiet.
Blandt nyhederne er builder-inferens, som er en særlig form for typeinferens, der kan være nyttig, når man kalder generiske builder-funktioner, skriver udviklerne bag i et blogindlæg. Tidligere har man skullet benytte en annotation for at benytte faciliteten.
Tidligere blev collection-funktionerne min() og max() omdøbt til det mere præcise minOrNull() og maxOrNull(), da funktionerne kan returnere null-værdier. Nu vender min(), max() og andre funktioner stærkt tilbage, men i udgaver, der ikke kan returnere null.
Nye faciliteter med regular expressions er nu 'stable', hvilket vil sige klar til brug i produktion. Det drejer sig om funktionerne Regex.matchAt() og Regex.matchesAt(), som blev introduceret i 1.5.30. Funktionerne giver mulighed for at kontrollere, om et regulært udtryk har et nøjagtigt match på en bestemt position i en String eller CharSequence.
Funktionen matchesAt() kontrollerer, om der er et match:
fun main(){ val releaseText = "Kotlin 1.7.0 is on its way!" // regular expression: one digit, dot, one digit, dot, one or more digits val versionRegex = "\\d[.]\\d[.]\\d+".toRegex() println(versionRegex.matchesAt(releaseText, 0)) // "false" println(versionRegex.matchesAt(releaseText, 7)) // "true" }
Funktionen matchAt() returnerer matchet, hvis der er et, eller null, hvis ikke:
fun main(){ val releaseText = "Kotlin 1.7.0 is on its way!" val versionRegex = "\\d[.]\\d[.]\\d+".toRegex() println(versionRegex.matchAt(releaseText, 0)) // "null" println(versionRegex.matchAt(releaseText, 7)?.value) // "1.7.0" }
De nye faciliteter er tilgængelige via beta-versionen i værktøjerne IntelliJ IDEA og Android Studio, der begge udvikles af Jetbrains, som er det oprindelige ophav til Kotlin.
