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