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) iVararg. - Razbacuje elemente kolekcije u odvojene argumente funkcije ili elemente novog niza.
- Označava se prefiksom
*.