Junior
Mi az a 'spread' operátor Kotlinban, és hogyan kell használni?
sobes.tech MI
Válasz az MI-től
A 'spread' operátor Kotlinben megfelel az * előtagnak egy tömb vagy szórt tömb (vararg) előtt. Ezt arra használják, hogy az ilyen kollekció elemeit átadják egy olyan függvénynek, amely változó számú argumentumot (vararg) vár. Lényegében "kiterjeszti" (spread) a kollekciót különálló argumentumokra.
Használati példa:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // spread operátor használata
}
A * operátor nélkül, az intArray átadása a printNumbers függvénynek hibát eredményezne fordításkor, mivel a printNumbers változó számú Int értéket vár, nem egy Int tömböt.
A 'spread' operátort akkor is lehet használni, amikor egy új tömböt hozunk létre, egy meglévő tömböt más elemekkel vagy más tömbökkel való összefűzéssel:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // spread operátor használata
println(combinedArray.contentToString()) // Kiírja: [1, 2, 5, 3, 4]
}
Főbb pontok:
- Csak tömbökre (
Array, primitív tömbök) ésVararg-ra alkalmazható. - A kollekció elemeit külön argumentumként vagy új tömb elemeként "szétszórja".
- A prefix
*-el jelölik.