幫助我理解這個Scala代碼:瞭解Scala代碼:(-_._ 2)
sortBy(-_._2)
我明白,第一個下劃線(_
)是一個佔位符。據我所知,_2
表示Tuple的第二個成員。 但是這個代碼中減號(-
)代表什麼?
幫助我理解這個Scala代碼:瞭解Scala代碼:(-_._ 2)
sortBy(-_._2)
我明白,第一個下劃線(_
)是一個佔位符。據我所知,_2
表示Tuple的第二個成員。 但是這個代碼中減號(-
)代表什麼?
反向順序(即降序),則排序減去元組
下劃線的第二場是一個匿名參數,因此-_基本相同爲x => -x
一些在平原階的例子:
scala> List(1,2,3).sortBy(-_)
res0: List[Int] = List(3, 2, 1)
scala> List("a"->1,"b"->2, "c"->3).sortBy(-_._2)
res1: List[(String, Int)] = List((c,3), (b,2), (a,1))
scala> List(1,2,3).sortBy(x => -x)
res2: List[Int] = List(3, 2, 1)
排序方式排序由ascending
順序爲默認值。爲了反轉訂單,可以預先加上-
(減號),正如@TrustNoOne所解釋的那樣。
因此,sortBy(-_._2)
按排序第二個值的Tuple2
但以相反的順序。
較長的例子:
scala> Map("a"->1,"b"->2, "c"->3).toList.sortBy(-_._2)
res1: List[(String, Int)] = List((c,3), (b,2), (a,1))
相同
scala> Map("a"->1,"b"->2, "c"->3).toList sortBy { case (key,value) => - value }
res1: List[(String, Int)] = List((c,3), (b,2), (a,1))
我覺得它有什麼做的'¯\ _(ツ)_ /'運營商。 –
@LukasEder對這個操作符會做什麼感到好奇。 :-) – marcospereira
@marcospereira:它通常用於捕捉和忽略'(□°□°)╯(┻━┻'異常 –