Sobes.tech
Junior — Middle

Hoe implementeer je het gebruik van aangepaste objecten als sleutels bij het werken met woordenboeken?

sobes.tech AI

Antwoord van AI

Om aangepaste objecten te gebruiken als sleutels in woordenboeken (bijvoorbeeld in Swift Dictionary), moeten deze objecten voldoen aan de protocollen Hashable en Equatable.

Dit betekent dat de klasse of structuur methoden moet implementeren voor het berekenen van de hash-waarde en het controleren van gelijkheid van objecten.

Voorbeeld in Swift:

struct User: Hashable {
    let id: Int
    let name: String

    func hash(into hasher: inout Hasher) {
        hasher.combine(id)
    }

    static func == (lhs: User, rhs: User) -> Bool {
        return lhs.id == rhs.id
    }
}

var dict: [User: String] = [:]
let user1 = User(id: 1, name: "Alice")
dict[user1] = "Admin"

In dit voorbeeld is de sleutel van de woordenboek een User-object, dat uniek wordt geïdentificeerd door id. De implementatie van hash(into:) en == maakt het mogelijk om objecten correct op te slaan en te zoeken in het woordenboek.