Sobes.tech
Junior

Šta je operator 'spread' u Kotlin-u i kako ga koristiti?

sobes.tech АИ

Одговор од АИ

Operator 'spread' u Kotlinu odgovara prefiksu * pre masiva ili razbacanog masiva (vararg). Koristi se za prenos elemenata takve kolekcije u funkciju koja očekuje promenljiv broj argumenata (vararg). U suštini, on "razvija" (spread) kolekciju na odvojene argumente.

Primer upotrebe:

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

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // Korišćenje spread operatora
}

Bez operatora *, pokušaj da se intArray prosledi funkciji printNumbers doveo bi do greške pri kompilaciji, jer printNumbers očekuje promenljiv broj Int, a ne niz Int.

Operator 'spread' može se koristiti i pri kreiranju novog niza spajanjem postojećeg niza sa pojedinačnim elementima ili drugim nizovima:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // Korišćenje spread operatora
    println(combinedArray.contentToString()) // Ispisaće [1, 2, 5, 3, 4]
}

Ključne tačke:

  • Primjenjuje se samo na nizove (Array, primitivni nizovi) i Vararg.
  • Razbacuje elemente kolekcije u odvojene argumente funkcije ili elemente novog niza.
  • Označava se prefiksom *.