泛型中的Swift通配符

时间:2014-07-08 17:07:51

标签: generics swift wildcard

我目前正在开发的项目使用了很多泛型。我在尝试使用通配符时遇到了问题。

在Java中,我可以这样做:

public class testGeneric<T> {

}
public class testing {
    public <T> void test (testGeneric<T> input) {
          testGeneric<?> testOne = input;
    }
}

没有任何错误。

在Swift中我使用AnyObject(因为它本来是所有对象的基础,所以我认为它可以以相同的方式使用)。

但是,以下引发错误(特别是“T与AnyObject不同”):

class testGeneric<T> {

}

class testing {
    func test <T> (input: testGeneric<T>) {
        var testOne: testGeneric<AnyObject> = input
    }
}

在搜索了一下后,我发现Swift中有“通配符模式”(特别是“_”)。但是,这似乎不适用于泛型。

有解决方法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找的是:

class testGeneric<T> {
}

class testing {
    func test <T> (input: testGeneric<T>) {
        var testOne: testGeneric<T> = input
    }
}