首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >.last在使用列表对象时的补码方法?

.last在使用列表对象时的补码方法?
EN

Stack Overflow用户
提问于 2015-05-18 17:36:25
回答 4查看 129关注 0票数 2

在Scala中使用List,我希望有一种简单的方法来获取除最后一个元素之外的所有元素。对于.last是否有类似于..head/..tail补码的补充方法?

我不想用这样的东西弄脏代码:

代码语言:javascript
运行
复制
    val x: List[String] = List("abc", "def", "ghi")
    val allButLast: List[String] = x.reverse.tail.reverse
    // List(abc, def)

谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-18 17:39:51

init选择除最后一个以外的所有元素。

列出用于初始化的API。

代码语言:javascript
运行
复制
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)
票数 6
EN

Stack Overflow用户

发布于 2015-05-18 17:48:38

这里的四个相关方法是headtailinitlast

headlast获得第一个和最后一个成员,而tailinit不包括第一个和最后一个成员。

代码语言:javascript
运行
复制
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上定义的,该列表实现。

票数 4
EN

Stack Overflow用户

发布于 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集合都有此方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30309585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档