模式匹配是否创建了一个函数?

时间:2013-04-20 23:22:13

标签: scala

根据docList.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的函数应用程序?

1 个答案:

答案 0 :(得分:2)

请注意compareTo返回一个整数。如果您想遵守签名(A, A) ⇒ Boolean,则按字母顺序升序,您可以使用<

所有这三个匿名函数都会对List

进行排序
myList.sortWith(_ < _)
myList.sortWith { case(a, b) => a < b }
myList.sortWith( (_, _) match { case (a, b) => a < b} )