9
在scala中是否有方法来获取List或Seq的(单个)头元素和列表的(集合)尾?我知道有从scala列表中获取头项目和尾项目
def splitAt(n: Int): (List[A], List[A])
我可以很容易地从元组的第一个列表中抓取单个项目。但是有没有内置的方法基本上是这样的?
def splitAtHead: (Option[A], List[A])
就像我说的,你可以很容易地连锁splitAt
返回正确的签名,但我想一个内置的方法也许能够节省中间元组。
编辑:
@ OM-NOM-NOM的答案是正确的,但是这就是为什么我不能用他的第二个版本。
List[S](s1, s2, s3, s4).sortBy { _.f (h) } match {
case hd :: tail => recurse(tail)
}
啊,模式匹配,效果显着。出于某种原因,我认为'case hd :: tail'会失败的单个元素列表。但我只是测试它,它运行良好。我会编辑我的问题,回答为什么我不能使用你的第二个版本。 – Falmarri 2013-02-11 00:15:57