我有以下类代表自定义数组结构:
class MyArrayClass {
...
}
现在我想在这个类上创建一个扩展名,使其成为save类型。我想做这样的事情:
extension MyArrayClass<T> {
func getAtIndex(i:Int) -> T {
return self.getAtIndex(i) as! T
}
}
是否可以使用通用参数扩展类?
答案 0 :(得分:2)
不,您无法扩展某个类,以便将其从非通用更改为通用,反之亦然。但是,很难理解你为什么不开始使这个类通用。换句话说,不要尝试使用扩展名,而是使用原始类声明。
或者,您可以使非通用类的单个方法通用。例如,getAtIndex
可能是通用的,即使MyArrayClass不是。
然而,猜测你可能会做什么样的事情,我认为通用的MyArrayClass会最有意义。