class P(val a: Int, val b: Int)
val listp = List[P](new P(2,1))
listp.sortWith((p1, p2) => p1.b < p2.b)
listp.sortBy(p => (p.b))
listp
容易梳理語法排序匿名列表
val list = List((2, 1))
list.sortWith((a1, b1), (a2, b2) => b1 < b2) // Too many arguements
list.sortWith(((a1, b1), (a2, b2)) => b1 < b2) // Not a legal formal parameter/<error> is already defined as <error>
list.sortBy((a, b) => (b)) // wrong number of parameters expected
我怎麼樣list
?所有的方法調用列表導致編譯錯誤(我知道我忽略了返回值,我只關心語法)。
我只是在尋找匿名函數的語法。我知道在Java中可以像Comparable
那樣繼承Ordered
。
編輯 - 這是爲我做的,感謝所有的答案:
list.sortWith(_._2 < _._2)
list.sortBy(_._2)
list.sortWith((t1, t2) => t1._2 < t2._2)
這是它明確
list.sortWith((t1: Tuple2[Int, Int], t2: Tuple2[Int, Int]) => t1._2 < t2._2)
如果列表是一個List [INT,INT]爲什麼我們需要這裏的模式匹配?我覺得它只是一種避免語法應該是的方法。 – aepurniet
它不是List [Int,Int],它是List [(Int,Int)]。如果你想有一個類似參數的方式從元組中提取值,模式匹配是必需的。另一種方法是使用'(l,r)=> l._1
pedrofurla