2
我目前正在使用的项目使用了很多泛型。尝试使用通配符时遇到问题。在泛型中的Swift通配符
在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
}
}
周围有点我发现搜索后,有在夫特(具体是“通配符模式”“_” )。但是,这似乎不适用于仿制药。
有没有办法解决这个问题?
在此先感谢。
'AnyObject'不包括结构和原语。你可以尝试'任何',而不是功能符合,但我不知道这将工作 – connor
@connor我试过使用任何,不幸的是它有同样的问题。 – Zenton
是的。你可能想尝试一个演员。 '如果让var testOne:testGeneric =输入为? testGeneric {/ * code * /}'注意,如果T是一个函数类型,它的意思是不起作用 –
connor