Я пытаюсь создать словарь с ключом в виде структуры, которую я создал, и значением в виде массива Ints. Однако я продолжаю получать сообщение об ошибке:
Тип DateStruct не соответствует протоколу Hashable
Я почти уверен, что реализовал необходимые методы, но по какой-то причине они все еще не работают.
Вот моя структура с реализованными протоколами:
struct DateStruct {
var year: Int
var month: Int
var day: Int
var hashValue: Int {
return (year+month+day).hashValue
}
static func == (lhs: DateStruct, rhs: DateStruct) -> Bool {
return lhs.hashValue == rhs.hashValue
}
static func < (lhs: DateStruct, rhs: DateStruct) -> Bool {
if (lhs.year < rhs.year) {
return true
} else if (lhs.year > rhs.year) {
return false
} else {
if (lhs.month < rhs.month) {
return true
} else if (lhs.month > rhs.month) {
return false
} else {
if (lhs.day < rhs.day) {
return true
} else {
return false
}
}
}
}
}
Кто-нибудь может объяснить мне, почему я все еще получаю ошибку?