Программа напечатает 6: Set оставляет уникальные значения 1, 2 и 3, а reduce складывает их с начальным нулём.
Какой результат будет выведен в примере №22
Программа напечатает 6: Set оставляет уникальные значения 1, 2 и 3, а reduce складывает их с начальным нулём.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В этом примере мы создаём множество из заданных чисел, где дубли удаляются автоматически, а затем суммируем все уникальные элементы множества. Что будет напечатано?
let sumResult = Set(arrayLiteral: 1, 2, 3, 3, 2, 1).reduce(0, +)
print(sumResult)
Ответ
Программа напечатает 6: Set оставляет уникальные значения 1, 2 и 3, а reduce складывает их с начальным нулём.
Повторы 3, 2 и 1 не создают дополнительных элементов множества. Порядок обхода Set не гарантирован, но здесь он не влияет на сумму трёх небольших целых чисел: 1 + 2 + 3 = 6. Если бы использовался Array с тем же набором литералов, повторы сохранились бы и сумма была бы 12.