Sobes.tech
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.