Junior
Kas yra 'spread' operatorius Kotlin ir kaip jį naudoti?
sobes.tech AI
Atsakymas iš AI
Kotlin'e 'spread' operatorius atitinka prefiksą *, kuris dedamas prieš masyvą arba išsklaidytą masyvą (vararg). Jis naudojamas perduoti tokios kolekcijos elementus funkcijai, kuri laukia kintamo skaičiaus argumentų (vararg). Iš esmės, jis "išskleidžia" (spread) kolekciją į atskirus argumentus.
Naudojimo pavyzdys:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // Naudojant spread operatorių
}
Be operatoriaus *, bandymas perduoti intArray funkcijai printNumbers sukeltų kompiliacijos klaidą, nes printNumbers laukia kintamo Int skaičiaus, o ne masyvo Int.
'spread' operatorių taip pat galima naudoti kuriant naują masyvą, sujungiant esamą masyvą su atskirais elementais arba kitais masyvais:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // Naudojant spread operatorių
println(combinedArray.contentToString()) // Išves [1, 2, 5, 3, 4]
}
Pagrindiniai punktai:
- taikomas tik masyvams (
Array, primitivių masyvai) irVararg. - išskleidžia kolekcijos elementus į atskirus argumentus funkcijai arba į naujo masyvo elementus.
- žymimas prefiksu
*.