Что выведет код 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 ошибок.
Предыдущий вопрос
Как Dictionary находит значение по ключу
Следующий вопрос
Что выведет Swift: индексы среза массива
Ещё по теме «Коллекции и строки»
- Сложность append у Array в Swift
- ContiguousArray и мост с NSArray
- Подсчёт частот в словаре
- Порядок ключей в Dictionary
- Сложность операций коллекций Swift
- String и NSString: длина и индексы
- Как взять n-й символ строки в Swift
- Сколько символов в строке с флагом