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