Junior
Kas ir 'spread' operators Kotlin un kā to izmantot?
sobes.tech AI
Atbilde no AI
Kotlin 'spread' operators atbilst prefiksam *, kas ir novieto to priekšā masīvu vai izkaisītu masīvu (vararg). To izmanto, lai nodotu šīs kolekcijas elementus funkcijai, kas sagaida mainīgu argumentu skaitu (vararg). Būtībā tas "izplata" (spread) kolekciju atsevišķos argumentos.
Piemērs lietošanai:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // Izplatīšanas operatora izmantošana
}
Bez operatora *, mēģinājums nodot intArray funkcijai printNumbers radītu kompilācijas kļūdu, jo printNumbers sagaida mainīgu Int skaitu, nevis Int masīvu.
'spread' operators arī var izmantot, izveidojot jaunu masīvu, apvienojot esošu masīvu ar atsevišķiem elementiem vai citiem masīviem:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // Izplatīšanas operatora izmantošana
println(combinedArray.contentToString()) // Izvadīs [1, 2, 5, 3, 4]
}
Galvenie punkti:
- piemērojams tikai masīviem (
Array, primitivu masīviem) unVararg. - izplata kolekcijas elementus atsevišķos argumentos funkcijai vai jauna masīva elementos.
- norādīts ar prefiksu
*.