x) .map(a=>(a._1, a._2.length)) 我认为.gro-6ren">
gpt4 book ai didi

scala - 在Scala中,为什么在此处groupBy中不能使用 `_`?

转载 作者:行者123 更新时间:2023-12-04 13:49:30 24 4
gpt4 key购买 nike

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

"hello"
.groupBy((x:Char)=>x)
.map(a=>(a._1, a._2.length))

我认为 .groupBy((x:Char)=>x)看起来很笨拙,因此需要这样重写:
"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)

由于_用于许多用途,因此也可能意味着“在此处插入值”。但是,由于上述含义,“插件身份”无效。

您可以执行x => xidentity来通过_获得所需的内容。

关于scala - 在Scala中,为什么在此处groupBy中不能使用 `_`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28790701/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com