Назад к задачам
Junior — Senior
21

Какой вывод получит программа

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Рассмотрите приведённый Swift‑код. Структура KeyObject реализует протокол Hashable, однако в методе hash(into:) всегда передаёт в хешер одно и то же значение, поэтому все её экземпляры будут иметь одинаковый хеш. Затем создаются два объекта‑ключа, в словарь помещается значение для первого из них, после чего происходит вывод этого же элемента.

struct KeyObject: Hashable {
    let a: Int
    func hash(into hasher: inout Hasher) {
        hasher.combine(0)
    }
}
let firstKey = KeyObject(a: 3)
let secondKey = KeyObject(a: 1)
var map: [KeyObject: String] = [:]
map[firstKey] = "hi"
print(map[firstKey])

Что будет напечатано?