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))