2016-02-19 78 views
3

是否可以定義一個通用參數都符合某種給定類型的類?類型上的Swift通用約束條件

例如

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

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

回答

0

No.無給一個類型。 類型約束指定一個類型參數必須從類繼承,或符合協議或協議組成:

class SomeClass<TypeParameter: ProtocolOrClass> 

爲什麼你不只是做:

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

let qux = Qux<Bar, Baz>()