Sobes.tech
Junior

Kas ir 'spread' operators Kotlin un kā to izmantot?

sobes.tech AI

Atbilde no AI

Kotlin 'spread' operators atbilst prefiksam *, kas ir novieto to priekšā masīvu vai izkaisītu masīvu (vararg). To izmanto, lai nodotu šīs kolekcijas elementus funkcijai, kas sagaida mainīgu argumentu skaitu (vararg). Būtībā tas "izplata" (spread) kolekciju atsevišķos argumentos.

Piemērs lietošanai:

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

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // Izplatīšanas operatora izmantošana
}

Bez operatora *, mēģinājums nodot intArray funkcijai printNumbers radītu kompilācijas kļūdu, jo printNumbers sagaida mainīgu Int skaitu, nevis Int masīvu.

'spread' operators arī var izmantot, izveidojot jaunu masīvu, apvienojot esošu masīvu ar atsevišķiem elementiem vai citiem masīviem:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // Izplatīšanas operatora izmantošana
    println(combinedArray.contentToString()) // Izvadīs [1, 2, 5, 3, 4]
}

Galvenie punkti:

  • piemērojams tikai masīviem (Array, primitivu masīviem) un Vararg.
  • izplata kolekcijas elementus atsevišķos argumentos funkcijai vai jauna masīva elementos.
  • norādīts ar prefiksu *.