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