Что выведет код Junior Коллекции и строки обновлено

Что выведет Swift: группировка через reduce(into:)

Вопрос

Что выведет код?

let words = ["swift", "kotlin", "dart", "scala", "kotlin"]
let byLetter = words.reduce(into: [Character: Int]()) { acc, w in
    acc[w.first!, default: 0] += 1
}
for key in byLetter.keys.sorted() {
    print(key, byLetter[key]!)
}

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: d 1, k 2, s 2. reduce(into:) мутирует один аккумулятор без копий.

Что выведет

d 1
k 2
s 2

Разбор

reduce(into:) мутирует один аккумулятор без копий. Ключи словаря обходятся после сортировки, иначе порядок был бы не определён.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.