Junior — Middle
Kas objekt kasutada võtmena Dictionary kogumises või sarnases andmestruktuuris?
sobes.tech AI
Vastus AI-lt
iOS-s (Swift või Objective-C) saab objekte kasutada sõnastike (Dictionary) võtmeks, kuid objekt peab vastama teatud nõuetele.
Swiftis peavad sõnastiku võtmed vastama Hashable protokollile, see tähendab, et objektil peab olema õigesti implementeeritud hash- ja võrdlusmeetodid. See on vajalik, et sõnastik saaks tõhusalt salvestada ja otsida väärtusi võtmete järgi.
Näide kohandatud objekti kasutamisest võtmena:
struct Person: Hashable {
let id: Int
let name: String
}
var dict: [Person: String] = [:]
dict[Person(id: 1, name: "Alice")] = "Developer"
Kui objekt ei implementeeri Hashable, ei saa seda kasutada võtmena. Objective-C-s peavad sõnastiku võtmed olema objektid, mis implementeerivad meetodid -hash ja -isEqual:.
Seega, objektid võivad olla kasutatavad võtmetena, kui nad õigesti implementeerivad hash- ja võrdlusmeetodid.