具有重叠类型约束的swift泛型func

具有重叠类型约束的swift泛型func,swift,generics,type-constraints,generic-function,Swift,Generics,Type Constraints,Generic Function,我有这个协议层次结构: protocol A {} protocol B: A {} 如果我有以下两个函数,会发生什么情况: func myFunc<T : A where T: B>( object: T){ ... } func myfunc<T : A>( object: T){ ... } myInstance符合协议B。在这种情况下,myInstance匹配2个约束 谢谢一般规则是编译器会尝试选择最具体/最受约束的重载 对于您上面的示例,它将是myFunc

我有这个协议层次结构:

protocol A {}

protocol B: A {}
如果我有以下两个函数,会发生什么情况:

func myFunc<T : A where T: B>( object: T){ ... }
func myfunc<T : A>( object: T){ ... }
myInstance符合协议B。在这种情况下,myInstance匹配2个约束


谢谢

一般规则是编译器会尝试选择最具体/最受约束的重载


对于您上面的示例,它将是myFunc的第一个版本

您可以自己尝试,您知道;我想知道一般的规则是什么。我想了很多,实际上是在写一个答案时,丹尼尔猛扑进来。尽管您应该注意到,这个问题只询问将执行哪个函数,而不是为什么要执行给定的函数。明确你的要求总是有帮助的。
myFunc( object: myInstance )