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協議和equatable
- 5. 核心數據:如何在swift 3中編寫「通用」讀取/刪除函數?
- 6. 使用swift編寫函數的錯誤
- 7. 如何編寫php函數
- 8. 如何編寫saveTable函數?
- 9. 如何編寫SQL函數
- 10. 如何編寫函數?
- 11. 如何在swift中編寫這個objective-c函數?
- 12. 如何在swift中編寫這個void objective-c函數
- 13. iOS - Swift:如何爲這種情況編寫泛型函數?
- 14. 如何在Swift 3中將函數設置爲函數參數
- 15. 爲什麼數組不符合Equatable,當它的項目在Swift中是Equatable時?
- 16. 在Swift中編寫循環3
- 17. 如何在Swift中編寫開關語句切換範圍3
- 18. Swift,Struct不符合協議Equatable?
- 19. Swift 2 - 符合Equatable問題的協議
- 20. 如何在Swift中製作一個泛型枚舉Equatable?
- 21. Swift 3函數參數(字典 - 數組)
- 22. 如何在沒有可變計數器的情況下編寫Swift 3循環
- 23. 如何使用alamofire post參數和回調函數swift 3?
- 24. 使用NSCoding在Swift 3中編碼和解碼函數如何工作?
- 25. Swift 3&JSON - 如何編輯從數據庫接收的數據?
- 26. 如何在SparkR中編寫函數?
- 27. 如何在Pig中編寫函數?
- 28. 如何使用foldr編寫此函數?
- 29. 如何編寫自己的isnumber()函數?
- 30. 如何在c#中編寫ajax函數#
請將代碼添加爲文本,而不是圖像。 –
代碼無法在Swift 2中運行。錯誤信息非常明確:**運營商只允許在全球範圍** – vadian
@appzYourLife將在下次做 – selcuk