Scala补丁功能

时间:2019-02-15 05:48:40

标签: scala apache-spark

object TestScala {
def main(args: Array[String]): Unit = {
val mainList = List(3, 2, 1)
mainList.patch(1, Seq(5), 0)
println("mainList-->"+mainList)
 }
}

输出为mainList-->List(3, 2, 1),不是预期的

我期望3,5,2,1

2 个答案:

答案 0 :(得分:3)

Scala列表是不可变的。 将其分配给变量,它将产生所需的输出。

object TestScala {
def main(args: Array[String]): Unit = {
var mainList = List(3, 2, 1)
mainList  = mainList.patch(1, Seq(5), 0)
println("mainList-->"+mainList)
 }
}

答案 1 :(得分:0)

Scala之类的功能语言更喜欢不可变的数据结构。

undefined_variable提供的答案是正确的,但您应该更喜欢val而不是var:

object TestScala {
  def main(args: Array[String]): Unit = {
   val mainList = List(3, 2, 1)
   val newList  = mainList.patch(1, Seq(5), 0)
   println("newList-->"+newList)
  }
}