在Swift中指定泛型类型的泛型

时间:2017-07-17 20:34:52

标签: ios generics swift3

ContentData成为一个打算进行子类化的类,并创建一个可以保留一些通用属性的结构...

struct Properties<T: ContentData, U: Paged<ContentData>> {
    let contentDataSubclass: T
    let pagedContentData: U
}

实例化如下:

let properties = Properties<FAQ, Paged<QuestionAnswer>>(contentData: faq!, contentDataProperty: faq!.questionAndAnswers)

注意:FAQQuestionAnswer都是ContentData

的子类

编译器抱怨说:

error: 'Properties' requires that 'Paged<QuestionAnswer>' inherit from 'Paged<ContentData>'

我是否需要我的Properties结构的where子句来指定我的U类型对象也是泛型类型?这是如何工作的?

目标是编写一个接受多级泛型的结构定义。也许是这样的:

struct Properties<T: ContentData, U: Paged<V: ContentData>>

0 个答案:

没有答案