Sobes.tech
Junior

Ce este operatorul 'spread' în Kotlin și cum îl folosești?

sobes.tech AI

Răspuns de la AI

Operatorul 'spread' în Kotlin corespunde prefixului * înaintea unui array sau array dispersat (vararg). Este folosit pentru a transmite elementele unei astfel de colecții către o funcție care așteaptă un număr variabil de argumente (vararg). În esență, el "desfășoară" (spread) colecția în argumente separate.

Exemplu de utilizare:

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

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // Utilizarea operatorului spread
}

Fără operatorul *, încercarea de a transmite intArray către funcția printNumbers ar duce la o eroare de compilare, deoarece printNumbers așteaptă un număr variabil de Int, nu un array de Int.

Operatorul 'spread' poate fi, de asemenea, utilizat la crearea unui nou array prin combinarea unui array existent cu elemente individuale sau alte array-uri:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // Utilizarea operatorului spread
    println(combinedArray.contentToString()) // Va afișa [1, 2, 5, 3, 4]
}

Puncte cheie:

  • Se aplică doar la array-uri (Array, array primitive) și Vararg.
  • Desfășoară elementele colecției în argumente separate ale unei funcții sau elemente ale unui nou array.
  • Este indicat cu prefixul *.