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