List[MyType]() case _ =>-6ren">
gpt4 book ai didi

scala - 追加到列表模式匹配

转载 作者:行者123 更新时间:2023-12-02 04:15:12 24 4
gpt4 key购买 nike

我目前面临以下问题。

我的代码基本上有以下情况:

val toList = this.toString.match {
case "" => List[MyType]()
case _ => this.val :: this.prev.toList
}

显然不准确,但它是一般要点。它工作正常,但我希望将值以相反的顺序附加到列表中。有什么好的方法可以做到这一点吗?如果我尝试颠倒顺序并执行以下操作,Intellij 会抛出错误

this.prev.toList :: this.val

如果我尝试使用像++ 这样的操作。根据我的类(class)结构,我想做的事情是不可能的吗?

当我尝试将 this.prev.toList 放在 this.val 之前时,我遇到的具体错误涉及“无法解析::”或我使用的任何符号。

是的,“这个”不是必需的 - 我将其包含在内是希望使我的问题更容易理解。

最佳答案

:: 在此列表的开头添加一个元素

scala> 1 :: List(2,3)
List(1, 2, 3)

+: 相当于 ::

scala> 1 +: List(2,3)
List(1, 2, 3)

:+ 在列表末尾追加元素

scala> List(1,2) :+ 3
List(1, 2, 3)

然而,在 List 上添加的成本是 O(1),而追加的成本是 O(n)!

对于“大量”集合,您可以考虑其他数据结构,例如 Vector:

Vector provides very fast append and prepend

http://www.scala-lang.org/api/2.11.7/index.html#scala.collection.immutable.Vector

关于scala - 追加到列表模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34167656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com