Kotlin får heltalstyper uden fortegn og nemmere fil-operationer

29. april 2021 kl. 10:13
Kotlin får heltalstyper uden fortegn og nemmere fil-operationer
Illustration: Milkos/Bigstock.
Flere nyheder i JVM-sproget Kotlin, der er nedkommet med version 1.5.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Kotlin er på trapperne med version 1.5, skriver udvikleren Pavel Semyonov i et blogindlæg.

Det er et programmeringssprog, som kan benyttes til Javas JVM-miljø og Android, med udstrakt kompatibilitet med Java.

Bagved står værktøjsfirmaet Jetbrains, der har opfundet sproget, samt Google. De to stiftede i fællesskab Kotlin Foundation i 2018. Ifølge Google benyttes sproget af millioner af udviklere, der udover mobil-udvikling benytter det til server og cloud.

Den nye version kan byde på heltalstyper uden fortegn, der kendes fra mange sprog, men som ikke findes i Java. Typerne blev introduceret tidligere, men er nu 'stabile', altså modne til anvendelse.

Artiklen fortsætter efter annoncen

Typerne hedder UInt, ULong, UByte, UShort og kommer i selskab med relaterede funktioner, såsom konvertering. Samme muligheder kommer også som arrays og ranges med UIntArray, UIntRange og tilsvarende containere til de andre fortegnsløse typer.

  1. val zero = 0U // Define unsigned numbers with literal suffixes
  2. val ten = 10.toUInt() // or by converting non-negative signed numbers
  3. //val minusOne: UInt = -1U // Error: unary minus is not defined
  4. val range: UIntRange = zero..ten // Separate types for ranges and progressions
  5.  
  6. for (i in range) print(i)
  7. println()
  8. println("UInt covers the range from ${UInt.MIN_VALUE} to ${UInt.MAX_VALUE}") // UInt covers the range from 0 to 4294967295

En anden nyhed, der også tidligere har været i beta, er udvidelser til Javas Path-api til filoperationer, som byder på muligheder, der er mere Kotlin-agtige. Det kan se sådan ud:

  1. import kotlin.io.path.\*
  2. import java.nio.file.Path
  3.  
  4. fun main() {
  5. // construct path with the div (/) operator
  6. val baseDir = Path("/base")
  7. val subDir = baseDir / "subdirectory"
  8.  
  9. // list files in a directory
  10. val kotlinFiles = Path("/home/user").listDirectoryEntries("*.kt")
  11. // count lines in all kotlin files
  12. val totalLines = kotlinFiles.sumOf { file -> file.useLines { lines -> lines.count() } }
  13. }

Der er flere nyheder i det ovennævnte blogindlæg.

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