Middle
İstifadəçi quruluşunun lüğətdə açar olması üçün nə etmək lazımdır?
sobes.tech Süni İntellekt
AI-dan cavab
Hashable protokolunu həyata keçirmək lazımdır.
Hashable protokolu Equatable-dən irsən gəlir.
Equatable: İki struktur nümunəsini müqayisə etmək üçün==bərabərlik operatorunun həyata keçirilməsini tələb edir.Hashable: Struktur nümunəsi üçün hash dəyərini hesablayanhash(into:)xüsusiyyətinin həyata keçirilməsini tələb edir.
Həyata keçirilmə nümunəsi:
struct Coordinate: Hashable {
let x: Int
let y: Int
// MARK: - Equatable
static func == (lhs: Coordinate, rhs: Coordinate) -> Bool {
return lhs.x == rhs.x && lhs.y == rhs.y
}
// MARK: - Hashable
func hash(into hasher: inout Hasher) {
hasher.combine(x)
hasher.combine(y)
}
}
// Sözlükdə istifadə
let coordinatesDictionary: [Coordinate: String] = [
Coordinate(x: 0, y: 0): "Origin",
Coordinate(x: 1, y: 1): "Point (1,1)"
]
print(coordinatesDictionary[Coordinate(x: 0, y: 0)]!)
Hasher hash dəyərinin yaradılmasında istifadə olunur. combine metodu müxtəlif hash-lənə bilən dəyərləri qəbul edir və onları birləşdirərək yekun hash-i yaradır.