Junior
Mis on 'spread' operaator Kotlinis ja kuidas seda kasutada?
sobes.tech AI
Vastus AI-lt
Kotlinis 'spread' operaator vastab * prefiksile, mis asetatakse massiivi või hajutatud massiivi (vararg) ette. Seda kasutatakse selle kollektsiooni elementide edastamiseks funktsioonile, mis ootab muutuva arvu argumente (vararg). Põhimõtteliselt 'levitab' (spread) kollektsiooni eraldi argumentidena.
Näide kasutamisest:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // Spread operaatori kasutamine
}
Ilma operaatorita *, katse edastada intArray funktsioonile printNumbers põhjustab kompileerimisvea, kuna printNumbers ootab muutuva arvu Int, mitte massiivi Int.
'spread' operaatorit saab kasutada ka uue massiivi loomisel, ühendades olemasoleva massiivi eraldi elementide või teiste massiividega:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // Spread operaatori kasutamine
println(combinedArray.contentToString()) // Kuvab [1, 2, 5, 3, 4]
}
Peamised punktid:
- kehtib ainult massiividele (
Array, primitiivmassiividele) jaVararg-ile. - hajutab kollektsiooni elemendid eraldi argumentideks funktsioonile või uue massiivi elementideks.
- märgitakse prefiksiga
*.