3
A
回答
3
这不是斯威夫特版本。它也会在Swift 2上发生错误。问题是您必须定义Struct的以外的==
函数,因为它必须是全局函数。
+0
谢谢。第一次与Hashable合作,Equatable。现在很好地工作。 – selcuk
+0
@selcuk:请阅读[this](http://stackoverflow.com/help/someone-answers) –
4
任何符合Hashable协议的Swift类型都必须符合Equatable协议。因为Hashable协议是从Equatable协议(source)继承的。这就是为什么你会收到错误信息。
至于你的问题,==功能必须全局声明,因为你重写全局==操作符能够比较你定义的两个属性。使用Swift 3,你也可以在结构本身中定义==,但它必须是静态的。
struct Attributes: Hashable {
var uid: Int
var size: Size
var mimeType: mimeType
var hashValue: Int {
return uid
}
static func ==(lhs: Attributes, rhs: Attributes) -> Bool {
return lhs.size == rhs.size && lhs.mimeType == rhs.mimeType
}
}
相关问题
- 1. 了解swift 3中的equatable?
- 2. Swift Equatable on protocol
- 3. Swift 3 - 如何编写新的UIColors等没有初始化函数的函数?
- 4. 核心数据:如何在swift 3中编写“通用”读取/删除函数?
- 5. 如何编写函数?
- 6. 如何编写php函数
- 7. 如何编写saveTable函数?
- 8. 如何编写SQL函数
- 9. 如何在swift中编写这个void objective-c函数
- 10. 如何在swift中编写这个objective-c函数?
- 11. iOS - Swift:如何为这种情况编写泛型函数?
- 12. 如何在Swift 3中将函数设置为函数参数
- 13. 如何在Swift中编写开关语句切换范围3
- 14. Swift,Struct不符合协议Equatable?
- 15. Swift 3函数参数(字典 - 数组)
- 16. 如何在Swift中制作一个泛型枚举Equatable?
- 17. 如何在Python中编写函数
- 18. 如何为此编写javaScript函数?
- 19. 如何为ede编写定位函数
- 20. 如何在Haskell中编写showIt函数?
- 21. 如何在prolog中编写unflatten函数?
- 22. 我不懂如何编写display_items函数
- 23. 如何编写自定义函数CNTK
- 24. 如何在C中编写函数?
- 25. 如何在winsock2中编写TransmitPackets函数?
- 26. 如何用Observable编写函数?
- 27. 如何在Golang中编写isNumeric函数?
- 28. 如何为Zapier编写回调函数
- 29. 如何在函数内编写facet_wrap(ggplot2)
- 30. 如何在scala中编写函数isSymbol?
请将代码添加为文本,而不是图像。 –
代码无法在Swift 2中运行。错误信息非常明确:**运营商只允许在全球范围** – vadian
@appzYourLife将在下次做 – selcuk