Назад к вопросам
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.
  • Разворачивает элементы коллекции в отдельные аргументы функции или элементы нового массива.
  • Обозначается с помощью префикса *.