在Scala中使用List,我希望有一种简单的方法来获取除最后一个元素之外的所有元素。对于.last是否有类似于..head/..tail补码的补充方法?
我不想用这样的东西弄脏代码:
val x: List[String] = List("abc", "def", "ghi")
val allButLast: List[String] = x.reverse.tail.reverse
// List(abc, def)谢谢。
发布于 2015-05-18 17:39:51
init选择除最后一个以外的所有元素。
列出用于初始化的API。
scala> List(1,2,3,4,5)
res0: List[Int] = List(1, 2, 3, 4, 5)
scala> res0.init
res1: List[Int] = List(1, 2, 3, 4)发布于 2015-05-18 17:48:38
这里的四个相关方法是head、tail、init和last。
head和last获得第一个和最后一个成员,而tail和init不包括第一个和最后一个成员。
scala> val list = (0 to 10).toList
list: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> list.head
res0: Int = 0
scala> list.tail
res1: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
scala> list.init
res2: List[Int] = List(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
scala> list.last
res3: Int = 10您还应该小心,因为在空列表中所有的4个都是不安全的,并且会抛出异常。
这些方法是在GenTraversableLike上定义的,该列表实现。
发布于 2015-05-18 17:39:05
那是init。
链接到Scaladoc:http://www.scala-lang.org/api/2.11.5/index.html#scala.collection.immutable.List@init:Repr
def init: List[A]选择除最后一个以外的所有元素。
另外,请注意它是在GenTraversableLike中定义的,因此几乎所有Scala集合都有此方法。
https://stackoverflow.com/questions/30309585
复制相似问题