Назад к вопросам
Junior
135
questionbank
Что такое оператор 'spread' в Kotlin и как его использовать?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Оператору 'spread' в Kotlin соответствует префикс * перед массивом или разреженным массивом (vararg). Он используется для передачи элементов такой коллекции в функцию, ожидающую переменное число аргументов (vararg). По сути, он "разворачивает" (spreads) коллекцию на отдельные аргументы.
Пример использования:
fun printNumbers(vararg numbers: Int) {
for (number in numbers) {
println(number)
}
}
fun main() {
val intArray = intArrayOf(1, 2, 3)
printNumbers(*intArray) // Использование оператора spread
}
Без оператора *, попытка передать intArray в функцию printNumbers привела бы к ошибке компиляции, так как printNumbers ожидает переменное число Int, а не массив Int.
Оператор 'spread' также можно использовать при создании нового массива путем объединения существующего массива с отдельными элементами или другими массивами:
fun main() {
val array1 = arrayOf(1, 2)
val array2 = arrayOf(3, 4)
val combinedArray = arrayOf(*array1, 5, *array2) // Использование оператора spread
println(combinedArray.contentToString()) // Выведет [1, 2, 5, 3, 4]
}
Ключевые моменты:
- Применяется только к массивам (
Array, примитивные массивы) иVararg. - Разворачивает элементы коллекции в отдельные аргументы функции или элементы нового массива.
- Обозначается с помощью префикса
*.