明确指定关联类型

时间:2016-04-04 14:06:05

标签: swift associated-types

在以下示例中,我的“类型”具有“选项”。我在Field结构中使用它们,因为Generics部分中的where子句确保它们是连贯的。

protocol Type {
    associatedtype O: Option
    var typeOption: O? { get }
}

protocol Option {

}

struct Field<T: Type, O: Option where T.O == O> {
    let type: T
    let option: O
}

工作正常。但是typeOption属性是无用的。实际上我只是把它放在一起,因此可以用String的扩展示例来推断Option的类型。

struct StringOption: Option {

}

extension String: Type {    
    var typeOption: StringOption? {
        return nil
    }    
}

所以我的问题是,我可以摆脱这个无用的属性,换句话说,我可以明确指定相关的类型吗?

0 个答案:

没有答案