Sobes.tech
Junior

Čo je operátor 'spread' v Kotlin a ako ho použiť?

sobes.tech AI

Odpoveď od AI

Operátor 'spread' v Kotlinu zodpovedá prefixu * pred poľom alebo rozptýleným poľom (vararg). Používa sa na odovzdanie prvkov takejto kolekcie funkcii, ktorá očakáva variabilný počet argumentov (vararg). V podstate ho "rozširuje" (spread) kolekciu na samostatné argumenty.

Príklad použitia:

fun printNumbers(vararg numbers: Int) {
    for (number in numbers) {
        println(number)
    }
}

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // Použitie spread operátora
}

Bez operátora *, by pokus odovzdať intArray funkcii printNumbers viedol k chybe pri kompilácii, pretože printNumbers očakáva variabilný počet Int, nie pole Int.

Operátor 'spread' sa tiež dá použiť pri vytváraní nového poľa spojením existujúceho poľa s jednotlivými prvkami alebo inými poľami:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // Použitie spread operátora
    println(combinedArray.contentToString()) // Vypíše [1, 2, 5, 3, 4]
}

Kľúčové body:

  • Platí iba pre polia (Array, primitívne polia) a Vararg.
  • Rozširuje prvky kolekcie do samostatných argumentov funkcie alebo prvkov nového poľa.
  • Označuje sa prefixom *.