扩展Swift中的泛型?

时间:2014-06-09 03:13:23

标签: generics swift

我试图在Swift中扩展Array<T>以添加一个调用self.append的函数。问题是Swift似乎不让我这样做 - 当我尝试以下代码时:

extension Array {
    mutating func AppendObj<T>(obj: T) {
        //...
        self.append(obj);
    }
}

它说&#39; T&#39;不能转换为&#39; T&#39;我认为这意味着&#39; T&#39;底层数组使用的可能与传递给AppendObj的T不同。它也不允许我使用extension Array<T>(&#34;使用未声明的类型T&#34;)。

是否有可能扩展&amp;在Swift中使用通用结构/方法?谢谢!

1 个答案:

答案 0 :(得分:2)

您不应该为该函数指定泛型,它会覆盖现有模板。把它留下来:

extension Array {
    mutating func AppendObj(obj: T) {
        //...
        self.append(obj);
    }
}