关于类型的Swift通用约束

时间:2016-02-19 17:05:39

标签: swift generics

是否可以定义一个通用参数都符合某个给定类型的类?

例如

protocol Foo{}
class Bar : Foo {}
class Baz : Foo {}
class Qux<T, U, V where U: T, V: T> {}

let qux = Qux<Foo, Bar, Baz>()

1 个答案:

答案 0 :(得分:0)

没有。不是一种类型。 类型约束指定类型参数必须从类继承,或符合协议或协议组合:

class SomeClass<TypeParameter: ProtocolOrClass>

你为什么不这样做:

protocol Foo {}
class Bar: Foo {}
class Baz: Foo {}
class Qux<U: Foo, V: Foo> {}

let qux = Qux<Bar, Baz>()