Sobes.tech
Junior

Kas yra 'spread' operatorius Kotlin ir kaip jį naudoti?

sobes.tech AI

Atsakymas iš AI

Kotlin'e 'spread' operatorius atitinka prefiksą *, kuris dedamas prieš masyvą arba išsklaidytą masyvą (vararg). Jis naudojamas perduoti tokios kolekcijos elementus funkcijai, kuri laukia kintamo skaičiaus argumentų (vararg). Iš esmės, jis "išskleidžia" (spread) kolekciją į atskirus argumentus.

Naudojimo pavyzdys:

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

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // Naudojant spread operatorių
}

Be operatoriaus *, bandymas perduoti intArray funkcijai printNumbers sukeltų kompiliacijos klaidą, nes printNumbers laukia kintamo Int skaičiaus, o ne masyvo Int.

'spread' operatorių taip pat galima naudoti kuriant naują masyvą, sujungiant esamą masyvą su atskirais elementais arba kitais masyvais:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // Naudojant spread operatorių
    println(combinedArray.contentToString()) // Išves [1, 2, 5, 3, 4]
}

Pagrindiniai punktai:

  • taikomas tik masyvams (Array, primitivių masyvai) ir Vararg.
  • išskleidžia kolekcijos elementus į atskirus argumentus funkcijai arba į naujo masyvo elementus.
  • žymimas prefiksu *.