Sobes.tech
Junior

O que é o operador 'spread' em Kotlin e como usá-lo?

sobes.tech IA

Resposta da IA

O operador 'spread' em Kotlin corresponde ao prefixo * antes de um array ou array disperso (vararg). É usado para passar os elementos dessa coleção para uma função que espera um número variável de argumentos (vararg). Basicamente, ele "espalha" (spread) a coleção em argumentos separados.

Exemplo de uso:

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

fun main() {
    val intArray = intArrayOf(1, 2, 3)
    printNumbers(*intArray) // Uso do operador spread
}

Sem o operador *, tentar passar intArray para a função printNumbers resultaria num erro de compilação, pois printNumbers espera um número variável de Int, não um array de Int.

O operador 'spread' também pode ser usado ao criar um novo array combinando um array existente com elementos individuais ou outros arrays:

fun main() {
    val array1 = arrayOf(1, 2)
    val array2 = arrayOf(3, 4)
    val combinedArray = arrayOf(*array1, 5, *array2) // Uso do operador spread
    println(combinedArray.contentToString()) // Vai mostrar [1, 2, 5, 3, 4]
}

Pontos principais:

  • Aplica-se apenas a arrays (Array, arrays primitivos) e Vararg.
  • Espalha os elementos da coleção em argumentos separados de uma função ou elementos de um novo array.
  • É indicado pelo prefixo *.