Initialisering af arrays i Kotlin

1. Oversigt

I denne hurtige vejledning ser vi på, hvordan vi kan initialisere et array i Kotlin.

2. arrayOf Biblioteksmetode

Kotlin har en indbygget arrayOf metode, der konverterer de angivne opregnede værdier til en matrix af den givne type:

valstrings = arrayOf ("januar", "februar", "marts")

3. Primitive arrays

Vi kan også bruge arrayOf metode med primitive værdier.

Imidlertid vil Kotlin autoboks de primitive værdier til deres tilsvarende objektindpakningsklasser, som vil have skadelige ydeevneimplikationer. For at undgå dette overhead har Kotlin bred støtte til primitive arrays. Der er dedikerede arrayOf metoder til følgende typer: dobbelt, float, long, int, char, short, byte, boolean.

Vi kan let initialisere et primitivt int-array ved hjælp af dets dedikerede arrayOf metode:

val heltal = intArrayOf (1, 2, 3, 4)

4. Sen initialisering med indekser

Nogle gange ønsker vi ikke at definere arrayets værdier ved instantiering. I dette tilfælde kan vi oprette en række nul værdier.

Efter instantiering kan vi få adgang til og indstille felterne i arrayet. Der er flere måder at gøre dette på, men en almindelig måde er at bruge Kotlins indekser ejendom. Denne egenskab returnerer en række gyldige indekser til matrixen. Vi kan bruge rækkevidde til at få adgang til og indstille værdierne for arrayet i en til løkke.

Lad os initialisere vores matrix med firkantede tal ved hjælp af denne tilgang:

val array = arrayOfNulls (5) for (i i array.indices) {array [i] = i * i}

5. Generering af værdier med initialisering

Primitive arrays og object arrays har begge konstruktører, der accepterer en initialiseringsfunktion som en anden parameter. Denne initialiseringsfunktion tager indekset som inputparameter, oversætter det til den relevante værdi ved hjælp af funktionen og indsætter det i arrayet.

Vi kan initialisere en matrix med firkantede tal i en linje:

val generatedArray = IntArray (10) {i -> i * i}

Som nævnt er denne form for konstruktør også tilgængelig for objektarrays:

val generatedStringArray = Array (10) {i -> "Antal indeks: $ i"}

6. Konklusion

I denne vejledning så vi hvordan man initialiserer arrays i Kotlin. Vi opdagede den brede vifte af understøttelse af primitive arrays. Vi observerede også, hvordan vi kan bruge arraykonstruktøren med en initialiseringsfunktion til at skrive kortfattet kode.

Som altid er koden tilgængelig på GitHub.