2
A
回答
2
種。由於Optional
是一種協議,因此您可以創建擴展並對其進行約束。但是,約束不能在一個類型上,但需要在一個協議上。
這工作:
extension Optional where Wrapped: SignedIntegerType {
func test() -> Int {
return 0
}
}
,然後你可以使用它:
let a:Int? = nil
a.test()
但是,如果你嘗試做:
extension Optional where Wrapped: Int {
func test() -> Int {
return 0
}
}
,你會得到一個錯誤:
type 'Wrapped' constrained to non-protocol type 'Int'
+0
請注意,調用該方法時,必須調用它,因爲它是非可選的。 –
+1
是的,這使它看起來很奇怪,恕我直言。 – pgb
相關問題
- 1. Java - 具體類擴展的泛型類
- 2. Swift的泛型類型推斷擴展
- 3. Class實例擴展了泛型超類
- 4. 從泛型類型的Swift實例化
- 5. 擴展泛型類
- 6. 擴展泛型類型
- 7. 如何聲明擴展泛型的類擴展泛型
- 8. NHibernate queryover擴展類的泛型類型
- 9. 擴展最終類的泛型類型
- 10. 實現泛型擴展
- 11. 無法在Swift 3中實例化具有泛型類型AnyObject的NSFetchedResultController
- 12. 將擴展方法應用於泛型類型泛型類型
- 13. 如何擴展在C#中返回泛型值的泛型類?
- 14. 泛型擴展
- 15. 擴展泛型類,但弱化子類中的泛型綁定
- 16. 擴展抽象泛型類
- 17. 實例化Kotlin中的泛型類型
- 18. 如何在類型擴展方法中實例化類型?
- 19. 具有特定類型的泛型列表的擴展?
- 20. 在Swift中,如何在協議擴展中使用泛型枚舉類型?
- 21. 使用泛型擴展類型
- 22. 如何創建一個泛型類的實例,該泛型類具有在其自己的類中擴展靜態類的類型參數?
- 23. Swift:查找給定類型的實例的泛型函數
- 24. Kotlin中的泛型擴展
- 25. 在Swift中擴展所有類型?
- 26. 在Swift中擴展序列類型
- 27. 在swift中擴展Set數據類型
- 28. Swift:使用泛型類型associatedtype的實例segfaults編譯器
- 29. 具有「擴展」的Java泛型
- 30. 擴展泛型 - PriorityQueue
只需擴展Int本身 –