-1

我有这个协议层次结构:

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 个约束。

谢谢

4

1 回答 1

2

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

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

于 2016-06-06T21:05:46.913 回答