Sobes.tech
Junior — Middle

Kuidas rakendada kasutajaobjektide kasutamist võtmetena sõnastikega töötamisel?

sobes.tech AI

Vastus AI-lt

Kohandatud objektide kasutamine sõnastikes (näiteks Swift Dictionary) nõuab, et need objektid vastaksid Hashable ja Equatable protokollidele.

See tähendab, et klass või struktuur peab rakendama meetodeid objekti hash-väärtuse arvutamiseks ja võrdluse kontrollimiseks.

Näide Swiftis:

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"

Selles näites on sõnastiku võti User objekt, mis on unikaalselt identifitseeritud id kaudu. hash(into:) ja == rakendused võimaldavad objekti õigesti salvestada ja otsida sõnastikus.