![](/img/trans.png)
[英]Swift Generics: Extending a non-generic type with a property of generic type where the generic parameter is the extended type
[英]Extending a non-Generic to a generic type
我有這段代碼代表一個非通用的Struct:
struct rum {
var prop = "Hello"
}
假設我需要為此Struct創建一個擴展以接收通用類型。 為此,我嘗試以下代碼:
extension rum <T>{
func release(bo: T){
println(T)
}
}
但是Xcode給了我很多錯誤,因為朗姆酒沒有通用類型。 但是這個想法是創建一個非通用的Struct並將其轉換為通用的。 可能嗎?
如果rum
是一個類,您將獲得更大的靈活性,因為您可以從中繼承泛型類,並在該泛型類上定義擴展。 但是, struct
是一個值類型,因此您不能從它派生一個類。
由於rum
不是通用struct
,因此需要使擴展方法通用,如下所示:
extension rum {
func release<T>(bo: T){
println(prop)
println(bo)
}
}
不幸的是,這意味着您希望通用的所有擴展方法都必須用<T>
裝飾。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.