我的解释_._1
是:
_
= 通配符参数
_1
= 方法参数列表中的第一个参数 但是当与它一起使用时.
,它意味着什么?
这是它的使用方式:
.toList.sortWith(_._1 < _._1)
对于这个声明:
_++_
我迷路了。是否以某种方式连接两个通配符参数?这是它的使用方式:
.reduce(_++_)
如果他们上面的代码可以变得更冗长并删除任何隐式,我会特别感兴趣,这样我才能更好地理解它?
我的解释_._1
是:
_
= 通配符参数
_1
= 方法参数列表中的第一个参数 但是当与它一起使用时.
,它意味着什么?
这是它的使用方式:
.toList.sortWith(_._1 < _._1)
对于这个声明:
_++_
我迷路了。是否以某种方式连接两个通配符参数?这是它的使用方式:
.reduce(_++_)
如果他们上面的代码可以变得更冗长并删除任何隐式,我会特别感兴趣,这样我才能更好地理解它?
_._1
调用_1
通配符参数上的方法_
,获取元组的第一个元素。因此,sortWith(_._1 < _._1)
按元组的第一个元素对元组列表进行排序。
_++_
++
使用第二个参数作为参数调用第一个通配符参数的方法。++
对序列进行连接。因此.reduce(_++_)
将序列列表连接在一起。通常你可以使用flatten
它。
_1
是一个方法名。具体来说,元组有一个名为 的方法_1
,它返回元组的第一个元素。所以_._1 < _._1
意味着“在两个参数上调用 _1 方法并检查第一个是否小于第二个”。
是的,_++_
连接两个参数(假设第一个参数有一个++
执行连接的方法)。
.reduce(_++_)
真的只是:
.reduce{ (acc, n) => acc ++ n }