14

我的解释_._1是:

_= 通配符参数 _1= 方法参数列表中的第一个参数 但是当与它一起使用时.,它意味着什么?

这是它的使用方式:

.toList.sortWith(_._1 < _._1)

对于这个声明:

_++_

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

.reduce(_++_)

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

4

3 回答 3

18

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

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

于 2012-10-24T09:06:14.927 回答
11

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

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

于 2012-10-24T09:07:54.897 回答
3
.reduce(_++_)

真的只是:

.reduce{ (acc, n) => acc ++ n }
于 2012-10-24T09:08:27.763 回答