Sobes.tech
Junior

Mi az a 'spread' operátor Kotlinban, és hogyan kell használni?

sobes.tech MI

Válasz az MI-től

A 'spread' operátor Kotlinben megfelel az * előtagnak egy tömb vagy szórt tömb (vararg) előtt. Ezt arra használják, hogy az ilyen kollekció elemeit átadják egy olyan függvénynek, amely változó számú argumentumot (vararg) vár. Lényegében "kiterjeszti" (spread) a kollekciót különálló argumentumokra.

Használati példa:

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

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // spread operátor használata
}

A * operátor nélkül, az intArray átadása a printNumbers függvénynek hibát eredményezne fordításkor, mivel a printNumbers változó számú Int értéket vár, nem egy Int tömböt.

A 'spread' operátort akkor is lehet használni, amikor egy új tömböt hozunk létre, egy meglévő tömböt más elemekkel vagy más tömbökkel való összefűzéssel:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // spread operátor használata
    println(combinedArray.contentToString()) // Kiírja: [1, 2, 5, 3, 4]
}

Főbb pontok:

  • Csak tömbökre (Array, primitív tömbök) és Vararg-ra alkalmazható.
  • A kollekció elemeit külön argumentumként vagy új tömb elemeként "szétszórja".
  • A prefix *-el jelölik.