2017-10-10 111 views
0

在C++中,我可以像這樣實現它。類在Swift中繼承它的泛型

template<typename MyType> 
class MyClass : public MyType 
{  
}; 

在Swift中可以這麼做嗎?

///Compiler error: Inheritance from non-procotol, non-class type 'T' 
class MyClass<MyGeneric> : MyGeneric 
{ 
} 
+0

不,這是不可能的。你爲什麼想要這個? – Hamish

+0

你不是指'class MyClass :MyGeneric {}'...?因爲你的語法根本沒有意義。 – holex

回答

1

你必須使用你的類作爲約束。你寫的方式,它使得MyGeneric一個佔位符名稱(而不是類的引用具有相同的名稱):

class MyClass<T:MyGenericClass>:MyGenericClass 
{} 

這是假設你想要得到的是這樣的:

class MyGenericSubClass: MyGenericClass {} 

let c = MyClass<MyGenericSubClass>()