类在Swift中继承它的泛型

时间:2017-10-10 12:19:50

标签: swift generics

在C ++中,我可以像这样实现它。

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

是否可以在Swift中这样做?

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

1 个答案:

答案 0 :(得分:1)

您必须使用您的类作为约束。您编写它的方式使MyGeneric成为占位符名称(而不是对具有相同名称的类的引用):

class MyClass<T:MyGenericClass>:MyGenericClass
{}

这假设你想要获得的是这样的:

class MyGenericSubClass: MyGenericClass {}

let c = MyClass<MyGenericSubClass>()