我有这个代表非通用Struct的代码:
struct rum {
var prop = "Hello"
}
让我们假设我需要为此Struct创建一个扩展来接收泛型类型。为此,我尝试这段代码:
extension rum <T>{
func release(bo: T){
println(T)
}
}
但Xcode给了我很多错误,朗姆酒没有通用类型。但这个想法是创建一个非泛型的Struct并将其转换为泛型。有可能吗?
答案 0 :(得分:2)
如果rum
是一个类,您将获得更大的灵活性,因为您可以从中派生泛型类,并在该泛型类上定义扩展。但是,struct
是值类型,因此您无法从中派生类。
由于rum
不是通用struct
,因此您需要将扩展方法设为通用,如下所示:
extension rum {
func release<T>(bo: T){
println(prop)
println(bo)
}
}
不幸的是,这意味着您希望通用的所有扩展方法都需要使用<T>
进行修饰。