swift 具有重叠类型约束的泛型函数
swift generic func with overlapping type constraints
我有这个协议层次结构:
protocol A {}
protocol B: A {}
如果我有以下两个函数会发生什么:
func myFunc<T : A where T: B>( object: T){ ... }
func myfunc<T : A>( object: T){ ... }
调用
会执行哪个函数
myFunc( object: myInstance )
myInstance
符合协议 B
。在这种情况下 myInstance
匹配 2 个约束。
谢谢
一般规则是编译器会尝试 select most 特定/most 约束重载。
对于上面的示例,它将是 myFunc
的第一个版本
我有这个协议层次结构:
protocol A {}
protocol B: A {}
如果我有以下两个函数会发生什么:
func myFunc<T : A where T: B>( object: T){ ... }
func myfunc<T : A>( object: T){ ... }
调用
会执行哪个函数myFunc( object: myInstance )
myInstance
符合协议 B
。在这种情况下 myInstance
匹配 2 个约束。
谢谢
一般规则是编译器会尝试 select most 特定/most 约束重载。
对于上面的示例,它将是 myFunc