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.

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.

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.

val zero = 0U // Define unsigned numbers with literal suffixes
val ten = 10.toUInt() // or by converting non-negative signed numbers
//val minusOne: UInt = -1U // Error: unary minus is not defined
val range: UIntRange = zero..ten // Separate types for ranges and progressions
 
for (i in range) print(i)
println()
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:

import kotlin.io.path.*
import java.nio.file.Path
 
fun main() {
    // construct path with the div (/) operator
    val baseDir = Path("/base")
    val subDir = baseDir / "subdirectory"
 
    // list files in a directory
    val kotlinFiles = Path("/home/user").listDirectoryEntries("*.kt")
    // count lines in all kotlin files
    val totalLines = kotlinFiles.sumOf { file -> file.useLines { lines -> lines.count() } }
}

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

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (0)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Log ind eller Opret konto for at kommentere