非泛型类的通用扩展?

时间:2015-05-06 15:34:17

标签: ios swift

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

class MyArrayClass {
...
}

现在我想在这个类上创建一个扩展名,使其成为save类型。我想做这样的事情:

extension MyArrayClass<T> {

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

}

是否可以使用通用参数扩展类?

1 个答案:

答案 0 :(得分:2)

不,您无法扩展某个类,以便将其从非通用更改为通用,反之亦然。但是,很难理解你为什么不开始使这个类通用。换句话说,不要尝试使用扩展名,而是使用原始类声明。

或者,您可以使非通用类的单个方法通用。例如,getAtIndex可能是通用的,即使MyArrayClass不是。

然而,猜测你可能会做什么样的事情,我认为通用的MyArrayClass会最有意义。