Junior
Čo je operátor 'spread' v Kotlin a ako ho použiť?
sobes.tech AI
Odpoveď od AI
Operátor 'spread' v Kotlinu zodpovedá prefixu * pred poľom alebo rozptýleným poľom (vararg). Používa sa na odovzdanie prvkov takejto kolekcie funkcii, ktorá očakáva variabilný počet argumentov (vararg). V podstate ho "rozširuje" (spread) kolekciu na samostatné argumenty.
Príklad použitia:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // Použitie spread operátora
}
Bez operátora *, by pokus odovzdať intArray funkcii printNumbers viedol k chybe pri kompilácii, pretože printNumbers očakáva variabilný počet Int, nie pole Int.
Operátor 'spread' sa tiež dá použiť pri vytváraní nového poľa spojením existujúceho poľa s jednotlivými prvkami alebo inými poľami:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // Použitie spread operátora
println(combinedArray.contentToString()) // Vypíše [1, 2, 5, 3, 4]
}
Kľúčové body:
- Platí iba pre polia (
Array, primitívne polia) aVararg. - Rozširuje prvky kolekcie do samostatných argumentov funkcie alebo prvkov nového poľa.
- Označuje sa prefixom
*.