在Scala,为什么``可以&´x27;这里不能在groupBy中使用?

在Scala,为什么``可以&´x27;这里不能在groupBy中使用?,scala,functional-programming,type-inference,Scala,Functional Programming,Type Inference,我试图计算单词中每个字符的出现列表,我当前的代码如下所示: "hello" .groupBy((x:Char)=>x) .map(a=>(a._1, a._2.length)) "hello" .groupBy(_) .map(a=>(a._1, a._2.length)) 我认为.groupBy((x:Char)=>x)看起来很笨拙,因此重写如下: "hello" .groupBy((x:Char)=>x) .map(a=>(a._1,

我试图计算单词中每个字符的出现列表,我当前的代码如下所示:

"hello"
  .groupBy((x:Char)=>x)
  .map(a=>(a._1, a._2.length))
"hello"
  .groupBy(_)
  .map(a=>(a._1, a._2.length))
我认为
.groupBy((x:Char)=>x)
看起来很笨拙,因此重写如下:

"hello"
  .groupBy((x:Char)=>x)
  .map(a=>(a._1, a._2.length))
"hello"
  .groupBy(_)
  .map(a=>(a._1, a._2.length))
但是编译器抛出了一个错误

Error:(1, 18) missing parameter type for expanded function ((x$1) => "hello".groupBy(x$1).map(((a) => scala.Tuple2(a._1, a._2.length))))
"hello".groupBy(_).map(a=>(a._1, a._2.length))

            ^
有人对此有想法吗?或者有更好的方法来写这个吗?

x.groupBy()
,就像任何方法一样
x.foo()
,意思是“将这个方法变成一个函数”,即
y=>x.groupBy(y)

因为
\uu
用于很多事情,所以它也可以表示“在此处插入值”。然而,“插件标识”由于上述含义而不起作用

您可以执行
x=>x
identity
,通过
\uu
获得您想要的