Junior
Czym jest operator 'spread' w Kotlin i jak go używać?
sobes.tech AI
Odpowiedź od AI
Operator 'spread' w Kotlinie odpowiada prefiksowi * przed tablicą lub rozproszoną tablicą (vararg). Służy do przekazywania elementów takiej kolekcji do funkcji oczekującej zmiennej liczby argumentów (vararg). W zasadzie "rozszerza" (spread) kolekcję na oddzielne argumenty.
Przykład użycia:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // Użycie operatora spread
}
Bez operatora *, próba przekazania intArray do funkcji printNumbers spowodowałaby błąd kompilacji, ponieważ printNumbers oczekuje zmiennej liczby Int, a nie tablicy Int.
Operator 'spread' można również używać podczas tworzenia nowej tablicy, łącząc istniejącą tablicę z pojedynczymi elementami lub innymi tablicami:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // Użycie operatora spread
println(combinedArray.contentToString()) // Wyświetli [1, 2, 5, 3, 4]
}
Kluczowe punkty:
- Dotyczy tylko tablic (
Array, tablice prymitywne) iVararg. - Rozszerza elementy kolekcji na oddzielne argumenty funkcji lub elementy nowej tablicy.
- Oznaczany jest prefiksem
*.