Будет напечатано ["john", "james", "louis", "vincent"]: возраст увеличивается как 23, 24, 29, 34.
Какой будет вывод? №29
Будет напечатано ["john", "james", "louis", "vincent"]: возраст увеличивается как 23, 24, 29, 34.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В задаче дан словарь, где ключами являются имена, а значениями — возраст людей. Требуется упорядочить элементы словаря по возрасту в порядке возрастания и вывести только имена в получившемся порядке.
let peopleAges = ["john": 23, "james": 24, "vincent": 34, "louis": 29]
let sortedNames = peopleAges.sorted(by: { $0.1 < $1.1 }).map { $0.0 }
print(sortedNames)
Какой результат будет напечатан на консоль?
Ответ
Будет напечатано ["john", "james", "louis", "vincent"]: возраст увеличивается как 23, 24, 29, 34.
sorted преобразует элементы Dictionary в отсортированный массив пар, сравнивая их значения .1. Затем map { $0.0 } оставляет ключи, то есть имена. Исходный словарь не приобретает постоянного порядка сортировки. Здесь все возраста различаются, поэтому ответ однозначный. Если возраста совпадут, для предсказуемого порядка имён добавьте вторичный критерий сравнения ключей.