scala中的排序

scala中的排序,scala,Scala,我知道 订购 从这个 我自己尝试了下面的代码: 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,

我知道

订购

从这个

我自己尝试了下面的代码:

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)
我可以知道怎么修吗?
谢谢。

问题在这里:
(([uu.\u 3,[uu.1])

您需要一个函数,该函数接受一个
(String,Int,Int)
,并返回一个
(Int,String)
。您还缺少该行的结束符

这将为您完成:
(x=>(x.\u 3,x.\u 1))
请注意,
x
表示输入元组(三元组),然后可以使用
.u 1
.u 2
.u 3
对其进行索引


您也可以这样做,
{case(a,b,c)=>(c,a)}
,它使用模式匹配来命名输入元组的所有元素,这样就可以轻松地引用它们而无需索引。

问题在这里:
((u.\u 3,u.1))

您需要一个函数,该函数接受一个
(String,Int,Int)
,并返回一个
(Int,String)
。您还缺少该行的结束符

这将为您完成:
(x=>(x.\u 3,x.\u 1))
请注意,
x
表示输入元组(三元组),然后可以使用
.u 1
.u 2
.u 3
对其进行索引


你也可以这样做,
{case(a,b,c)=>(c,a)}
,它使用模式匹配来命名输入元组的所有元素,这样它们就可以很容易地被引用,而无需索引。

你能给出完整的答案吗,因为我是scala新手?谢谢。请确保您已阅读相关帖子:。对不起,我不理解您的请求。我指出了要删除的代码,建议了可以用什么替换它,并试图解释替换代码是如何工作的。哪些部分需要进一步澄清?下划线按位置处理。第一个下划线指的是第一个函数参数等。谢谢你的回答,现在我可以写一个正确的,但我不确定ordering.on和ordering.in的意思是什么?例如,Sorting.quickSort(pairs)(ordering[(Int,String)]。on[(String,Int,Int)]((x=>(x.[u 3,x.[u 1)))Sorting.quickSort(pairs)(ordering.by[(String,Int,Int)]((uu.2))你能给出完整的答案吗?因为我是scala的新手?谢谢。请确保您已阅读相关帖子:。对不起,我不理解您的请求。我指出了要删除的代码,建议了可以用什么替换它,并试图解释替换代码是如何工作的。哪些部分需要进一步澄清?下划线按位置处理。第一个下划线指的是第一个函数参数等。谢谢你的回答,现在我可以写一个正确的,但我不确定ordering.on和ordering.in的意思是什么?例如,Sorting.quickSort(pairs)(ordering[(Int,String)]。on[(String,Int,Int)]((x=>(x.[u 3,x.[u 1)))Sorting.quickSort(pairs)(ordering.by[(String,Int,Int)]((uu.2))