根据doc的List.sortWith
方法:具有签名
def sortWith(lt: (A, A) ⇒ Boolean): List[A]
现在我们可以做一个字符串列表:
myList.sortWith((_,_) match { case(s1: String, s2: String) => s1.compareTo(s2)}
即当scala说它想要一个函数类型时使用模式匹配。
在这种情况下,我们可以说
(_,_) match { case(s1: String, s2: String) => s1.compareTo(s2)
是以下函数类型(A, A) ⇒ Boolean
的函数应用程序?
答案 0 :(得分:2)
请注意compareTo
返回一个整数。如果您想遵守签名(A, A) ⇒ Boolean
,则按字母顺序升序,您可以使用<
。
所有这三个匿名函数都会对List
:
myList.sortWith(_ < _)
myList.sortWith { case(a, b) => a < b }
myList.sortWith( (_, _) match { case (a, b) => a < b} )