Junior
Co je to operátor 'spread' v Kotlinu a jak ho používat?
sobes.tech AI
Odpověď od AI
Operátor 'spread' v Kotlinu odpovídá předponě * před polem nebo rozptýleným polem (vararg). Používá se k předání prvků takové kolekce funkci, která očekává proměnný počet argumentů (vararg). V podstatě "rozprostí" (spread) kolekci na samostatné argumenty.
Příklad použití:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // Použití operátoru spread
}
Bez operátoru *, by pokus předat intArray funkci printNumbers vedl k chybě kompilace, protože printNumbers očekává proměnný počet Int, nikoliv pole Int.
Operátor 'spread' lze také použít při vytváření nového pole spojením existujícího pole s jednotlivými prvky nebo jinými poli:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // Použití operátoru spread
println(combinedArray.contentToString()) // Vypíše [1, 2, 5, 3, 4]
}
Klíčové body:
- Platí pouze pro pole (
Array, primitivní pole) aVararg. - Rozprostí elementy kolekce do samostatných argumentů funkce nebo do prvků nového pole.
- Označuje se prefixem
*.