具有重叠类型约束的swift泛型函数

时间:2016-06-06 20:58:52

标签: swift generics type-constraints generic-function

我有这个协议层次结构:

protocol A {}

protocol B: A {}

如果我有以下2个函数会发生什么:

func myFunc<T : A where T: B>( object: T){ ... }
func myfunc<T : A>( object: T){ ... }

如果我打电话

将执行哪个功能
myFunc( object: myInstance ) 

myInstance符合协议B。在这种情况下,myInstance匹配2个约束。

由于

1 个答案:

答案 0 :(得分:2)

一般规则是编译器尝试选择大多数特定/ 大多数约束过载。

对于上面的示例,它将是myFunc

的第一个版本