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.