我有以下表示自定义数组结构的类:

class MyArrayClass {
...
}

现在我想在这个类上创建一个扩展,使其类型为save。我想这样做:
extension MyArrayClass<T> {

    func getAtIndex(i:Int) -> T {
        return self.getAtIndex(i) as! T
    }

}

可以用泛型参数扩展类吗?

最佳答案

不,不能扩展类以将其从非泛型更改为泛型,反之亦然。然而,很难理解为什么不从泛型开始。换句话说,不要尝试使用扩展来实现这一点,而是使用原始的类声明来实现。
或者,可以使非泛型类的各个方法成为泛型。例如,getAtIndex可以是泛型的,即使MyArrayClass不是。
不过,猜猜你可能在做什么,我认为一个通用的MyArrayClass将是最有意义的。

07-24 09:37
查看更多