Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型的Swift泛型约束_Swift_Generics - Fatal编程技术网

类型的Swift泛型约束

类型的Swift泛型约束,swift,generics,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>() 协议Foo{} 类栏:Foo{} 类Baz:Foo{} 类Qux{} 设qux=qux() 否。不适用于某一类型。类型约束指定类型参数必须从类继承,或符合协议或协议组合:

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

比如说

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

let qux = Qux<Foo, Bar, Baz>()
协议Foo{}
类栏:Foo{}
类Baz:Foo{}
类Qux{}
设qux=qux()
否。不适用于某一类型。类型约束指定类型参数必须从类继承,或符合协议或协议组合:

class SomeClass<TypeParameter: ProtocolOrClass>
class-SomeClass
你为什么不这样做呢:

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

let qux = Qux<Bar, Baz>()
协议Foo{}
类栏:Foo{}
类Baz:Foo{}
类Qux{}
设qux=qux()