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