Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala占位符语法_Scala - Fatal编程技术网

Scala占位符语法

Scala占位符语法,scala,Scala,有件事我不太明白,希望有人能解释一下。。 我有Seq[字符串] val strDeps: Seq[String] = ... 我尝试使用sortWith方法对其进行反向排序,得到以下错误 scala> print(strDeps.sortWith(_.reverse.compareTo(_.reverse) < 0) mkString ("\n")) <console>:15: error: wrong number of parameters; expected =

有件事我不太明白,希望有人能解释一下。。 我有Seq[字符串]

val strDeps: Seq[String] = ...
我尝试使用sortWith方法对其进行反向排序,得到以下错误

scala> print(strDeps.sortWith(_.reverse.compareTo(_.reverse) < 0) mkString ("\n"))
<console>:15: error: wrong number of parameters; expected = 2
              print(strDeps.sortWith(_.reverse.compareTo(_.reverse) < 0) mkString ("\n"))
                                                                    ^
scala>print(strDeps.sortWith(u.reverse.compareTo(u.reverse)<0)mkString(“\n”))
:15:错误:参数数量错误;期望值=2
打印(strDeps.sortWith(u.reverse.compareTo(u.reverse)<0)mkString(“\n”))
^
但是,当我尝试在不做反向操作的情况下对其进行排序时,效果很好

scala> print(strDeps.sortWith(_.compareTo(_) < 0) mkString ("\n"))
// this is fine
scala>print(strDeps.sortWith(u.compareTo(u)<0)mkString(“\n”))
//这很好
如果没有占位符语法,它也可以正常工作

scala> print(strDeps.sortWith((a,b) => a.reverse.compareTo(b.reverse) < 0) mkString ("\n"))
// this works fine too
scala>print(strDeps.sortWith((a,b)=>a.reverse.compareTo(b.reverse)<0)mkString(“\n”))
//这也行

\u
仅扩展到尽可能小的范围

内部
\uuu.reverse
部分已被解释为
x=>x.reverse
,因此
sortWith
中缺少参数

compareTo(_)
是一种部分应用的方法。它只是表示“compareTo,但不应用第一个参数”。请注意,
不是一个参数。相反,它表示缺少参数

compareTo(_.reverse)
是一种以匿名函数为参数的方法,参数为
\uuu.reverse
。转换为
x=>x.reverse

另请参见:。同样的问题。