Scala中的_._ 1和_ ++ _是什么意思(两个独立的操作)?

use*_*254 12 scala

我的解释_._1是:

_= wildcard parameter _1=方法参数列表中的第一个参数但是当.它与它表示什么一起使用时?

这是它的用法:

.toList.sortWith(_._1 < _._1)
Run Code Online (Sandbox Code Playgroud)

对于这个声明:

_++_
Run Code Online (Sandbox Code Playgroud)

我迷路了.是以某种方式连接两个通配符参数?这是它的用法:

.reduce(_++_)
Run Code Online (Sandbox Code Playgroud)

如果上面的代码可以变得更加冗长并删除任何含义,我会特别感兴趣,这样我才能更好地理解它?

Kim*_*bel 14

_._1_1在wildcard参数上调用该方法,该参数_获取元组的第一个元素.因此,sortWith(_._1 < _._1)按元组的第一个元素对元组列表进行排序.

_++_++使用第二个参数作为参数调用第一个通配符参数上的方法.++对序列进行连接.从而.reduce(_++_)将序列列表连接在一起.通常你可以用flatten它.


sep*_*p2k 8

_1是一个方法名称.具体来说,元组有一个名为的方法_1,它返回元组的第一个元素.所以_._1 < _._1意味着"在两个参数上调用_1方法并检查第一个是否小于第二个".

是的,_++_连接两个参数(假设第一个参数有一个++执行连接的方法).


Dom*_*mra 5

.reduce(_++_)
Run Code Online (Sandbox Code Playgroud)

真的只是:

.reduce{ (acc, n) => acc ++ n }
Run Code Online (Sandbox Code Playgroud)