Будет напечатано 6: reduce начинает с Int.zero и последовательно прибавляет 1, 2 и 3.
Какой результат выведет программа №21
Будет напечатано 6: reduce начинает с Int.zero и последовательно прибавляет 1, 2 и 3.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
let sumResult: Int = [1, 2, 3]
.reduce(.zero) {
$0 + $1
}
print(sumResult)
В данном фрагменте кода создаётся массив из трёх целых чисел. С помощью функции reduce‑суммируются все элементы, начиная с нуля, и полученный результат выводится на консоль.
Ответ
Будет напечатано 6: reduce начинает с Int.zero и последовательно прибавляет 1, 2 и 3.
Начальный аккумулятор равен 0. На каждом шаге $0 — накопленная сумма, $1 — следующий элемент массива. Получаются значения 1, 3, затем 6. Аннотация результата Int помогает определить тип .zero; это статическое нулевое значение, а не специальный отдельный оператор. Для пустого массива результатом такого reduce был бы начальный ноль.