Scala:我如何编写sortBy所具有的函数类型?
发布时间:2020-12-16 08:47:08 所属栏目:安全 来源:网络整理
导读:我想将List.sortBy接受的参数传递给另一个函数.我的代码看起来像这样: //Scaladef sortAndMore(list: List[(String,_)],sortFn: Option[???] = None) = { val maybeSortedList = sortFn match { case None = list case Some(fn) = list.sortBy(fn) } // do
我想将List.sortBy接受的参数传递给另一个函数.我的代码看起来像这样:
//Scala def sortAndMore(list: List[(String,_)],sortFn: Option[???] = None) = { val maybeSortedList = sortFn match { case None => list case Some(fn) => list.sortBy(fn) } // do some more stuff with this list } val myList = ("one",1)::("three",3)::("two",2)::Nil sortAndMore(myList,Some(_._1 /*???*/)) 所以最后我希望得到与此相同的结果: myList.sortBy(_._1) sortAndMore函数中的Option类型是什么? Scala API for scala.collection.immutable.List说: def sortBy [B] (f: (A) ? B)(implicit ord: Ordering[B]): List[A] 我尝试了几件事,但我只是不知道正确的语法,并且猜测它并不幸运.任何提示都非常受欢迎,特别是指向为什么语法必须如此. 解决方法
这是我的解决方案(在我的终端上编译)
def sortAndMore(list: List[(String,sortFn: Option[((String,_))=>String] = None) = { val maybeSortedList = sortFn match { case Some(fn) => list.sortBy(fn) case None => list } } sortAndMore(myList,Some(_._1)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |