Scala附加列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala附加列表相关的知识,希望对你有一定的参考价值。

我正在为一项任务而开始接触Scala,我已经找了一个小时了,一直在寻找如何在列表中添加一个项目。当然,我已经找到了几种解决方案,下面的代码片段确实可以编译,但生成的列表是空的。谁能告诉我这是为什么?

  case NodeList(ls) => {
      var ls0 = List()
      ls.foreach {
        println("hey") // => printed 3 times
        i => ls0 :+ i
      }

      println(ls0) // => Empty list as output (ls contains 3 items when called)
  }

将感激帮助很多! 先谢谢你。

答案

你是在向列表中追加一个项目,但你从来没有存储所产生的新列表。基本上,你追加一个项目,然后扔掉结果,再追加,再扔掉,以此类推。

你需要将列表存储在某个地方。

请注意,向一个列表追加是一个坏主意:你必须在整个列表中迭代以找到最后一个元素,然后下一次追加时,你必须再做一次,再做一次,再做一次。这意味着你的代码的算法复杂度为(n^2 - n)2,而同样的事情在Θ(n)中可以轻松完成。你应该总是 前言 列表,而不是追加。

以上是关于Scala附加列表的主要内容,如果未能解决你的问题,请参考以下文章

片段未附加到我的活动

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?

片段未附加到上下文

保留对附加节点 javascript 的引用

带有神秘附加字符的 Javascript Date getTime() 代码片段

Symfony2 将哈希片段参数附加到分页 URL