原代码如下:

    def bubbleSortStrategy[U](dataset: List[U]) : List[U] ={
        println("sort in bubble")
        dataset.sorted
    }

启动时,完整报错信息:

Error:(8, 17) No implicit Ordering defined for U.
        dataset.sorted
Error:(8, 17) not enough arguments for method sorted: (implicit ord: scala.math.Ordering[U])List[U].
Unspecified value parameter ord.
        dataset.sorted
Error:(13, 17) No implicit Ordering defined for U.
        dataset.sorted
Error:(13, 17) not enough arguments for method sorted: (implicit ord: scala.math.Ordering[U])List[U].
Unspecified value parameter ord.
        dataset.sorted

代码需要添加隐式参数:

    def bubbleSortStrategy[U](dataset: List[U]) (implicit ord: Ordering[U]): List[U] ={
        println("sort in bubble")
        dataset.sorted
    }

当直接调用dataset.sorted时,如dataset类型为List[Int],这里明确存在 Int -> Ordering[Int] 转换,所以不需要额外声明,但是对于泛型不确定性,需要在函数中声明

 

posted on 2022-04-10 12:44  啊哈咧  阅读(218)  评论(0编辑  收藏  举报