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 } } } }}
任何人都可以向我解释为什么我仍然会收到错误?
你错过了声明:struct dateStruct: Hashable {
BTW – 结构和类名称应以大写字母开头.
你的==函数是错误的.您应该比较这三个属性.
static func == (lhs: dateStruct,rhs: dateStruct) -> Bool { return lhs.year == rhs.year && lhs.month == rhs.month && lhs.day == rhs.day}
两个不同的值可能具有相同的哈希值.
总结以上是内存溢出为你收集整理的swift – 符合Hashable协议?全部内容,希望文章能够帮你解决swift – 符合Hashable协议?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)