Sobes.tech
Junior — Middle

Hogyan valósítható meg a felhasználói objektumok használata kulcsként szótárak esetén?

sobes.tech MI

Válasz az MI-től

Az egyedi objektumokat kulcsként használhatja szótárakban (például Swift Dictionary-ben), ha ezek az objektumok megfelelnek a Hashable és Equatable protokolloknak.

Ez azt jelenti, hogy az osztálynak vagy szerkezetnek meg kell valósítania a hash érték kiszámítására és az objektumok egyenlőségének ellenőrzésére szolgáló módszereket.

Példa Swift-ben:

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"

Ebben a példában a szótár kulcsa egy User objektum, amelyet egyedileg az id azonosít. A hash(into:) és == implementáció lehetővé teszi az objektumok helyes tárolását és keresését a szótárban.