Junior — Middle
Kas on võimalik kasutada keerulist andmestruktuuri võtmena sõnastikus?
sobes.tech AI
Vastus AI-lt
iOS (Swift) sõnastikes (Dictionary) võivad võtmed olla ainult tüübid, mis vastavad protokollile Hashable. See tähendab, et keeruline andmestruktuur võib olla võti, kui see rakendab hash- ja võrdlusfunktsiooni võrdsuse kontrollimiseks.
Näiteks, kui teil on struktuur:
struct Point: Hashable {
let x: Int
let y: Int
}
siis saate kasutada Point-i võtmena sõnastikus:
var dict: [Point: String] = [:]
dict[Point(x: 1, y: 2)] = "Punkt A"
Kui struktuur ei vasta Hashable-le, siis seda ei saa kasutada võtmena. Sellisel juhul peate kas lisama vastavuse protokollile või kasutama teist tüüpi võtit.