Sobes.tech
Junior — Middle

Használható-e összetett adatstruktúra kulcsként egy szótárban?

sobes.tech MI

Válasz az MI-től

Az iOS (Swift) szótárakban (Dictionary) a kulcsok csak olyan típusok lehetnek, amelyek megfelelnek a Hashable protokollnak. Ez azt jelenti, hogy egy összetett adatstruktúra kulcs lehet, ha megvalósítja a hash-elést és az egyenlőség összehasonlítást.

Például, ha van egy struktúrád:

struct Point: Hashable {
    let x: Int
    let y: Int
}

akkor a Point-ot kulcsként használhatod egy szótárban:

var dict: [Point: String] = [:]
dict[Point(x: 1, y: 2)] = "Pont A"

Ha a struktúra nem felel meg a Hashable-nak, akkor nem használható kulcsként. Ebben az esetben vagy hozzá kell adni a protokollhoz való megfelelést, vagy más típusú kulcsot kell használni.