我学习
排序
来自link。
我自己尝试了下面的代码:
val pairs = Array(("a", 5, 2), ("c", 3, 1), ("b", 1, 3))
Sorting.quickSort(pairs)(Ordering[(Int, String)].on[(String, Int, Int)]((_._3,_.1))
然而,有一个错误说:
Multiple markers at this line
- type mismatch; found : (String, Int, Int) required: String
- ')' expected but double literal found.
- missing parameter type for expanded function ((x$2) => x$2._3)
我可以知道如何解决这个问题吗? 感谢。
答案 0 :(得分:3)
问题在于:((_._3,_.1))
您需要一个只需(String, Int, Int)
的函数并返回(Int, String)
。您还错过了该行的结束)
。
这将为您完成:(x=>(x._3,x._1))
请注意x
代表输入元组(三元组),然后可以使用._1
,._2
和{{ 1}}。
您也可以这样做._3
,它使用模式匹配来命名输入元组的所有元素,以便在不编制索引的情况下轻松引用它们。