Sobes.tech
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.