1
我有一個類看起來是這樣的:初始化通過關鍵字`self`泛型類中的一類功能
class MyContainer<T> {
required init() {}
class func giveMeAContainer() -> MyContainer<Any?> {
let container: MyContainer<Any?> = self()
return container
}
}
我從編譯器,'T' is not identical to 'Any?'
得到一個錯誤。我試過self<Any?>()
,但顯然這不是合法的語法。
那麼,我可以通過類函數中的關鍵字self
初始化泛型類嗎?
---更新0
我想通過這個函數返回MyContainer<Any?>
類型的值。
但我不想覆蓋此函數返回MyChildContainer<Any?>
當我創建一個子類繼承MyContainer<T>
。
我相信MyChildContainer<Any?>
是一個MyContainer<Any?>
。所以這在邏輯上是合法的。
---更新1
我知道我要的是
class func giveMeAContainer() -> Self<Any?> {
return self<Any?>()
}
但很明顯,這是不合法的編譯器。
THX答覆。我在更新中寫下了我想要的內容。 – CopperCash 2014-10-08 09:11:25