我正在阅读 Josh Suereth 的(很棒的)帖子A Generic Quicksort in Scala。特别有趣的是关于推迟集合类型推断的部分。
现在我想知道这是否也适用于非收藏品。以下2种方法创建一个Foo[T,O]
def sort1[T, O](from: T, to: T)(implicit ev: O <:< Ordering[T], ord: O):Foo[T,O] = {
...
}
def sort2[T, O <: Ordering[Int]](from: T, to: T)(implicit ord: O):Foo[T,O] = {
...
}
这两种方法中的哪一种更受欢迎,为什么?
sort2(2,5)
确实有效,sort1(2,5)
因为存在模棱两可的隐式解析错误,编译器似乎发现了更多隐含。