Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala-全局变量获取函数中的值_Scala_Variables_Global - Fatal编程技术网

Scala-全局变量获取函数中的值

Scala-全局变量获取函数中的值,scala,variables,global,Scala,Variables,Global,我是Scala的初学者 我马上就有问题了 比如说: 我有一个向量变量和两个函数。第一个函数调用第二个函数。第二个函数中有一个变量,我需要得到它,然后把它附加到向量上。不返回第二个函数中的变量 结构如下所示: def main(args: Array[String]): Unit = { var vectorA = Vector().empty } def funcA(): sometype = { ... ... ... funcB() } def fu

我是Scala的初学者

我马上就有问题了

比如说:

我有一个向量变量和两个函数。第一个函数调用第二个函数。第二个函数中有一个变量,我需要得到它,然后把它附加到向量上。不返回第二个函数中的变量

结构如下所示:

def main(args: Array[String]): Unit = {
    var vectorA = Vector().empty

}
def funcA(): sometype = {
    ...
    ...
    ...
    funcB()
}
def funcB(): sometype = {
    var error = 87

}
如何在全局向量中添加错误变量


我试图写vectorA:+错误,但没有成功。

您可以执行以下操作:

def main(args: Array[String]): Unit = {
    val vectorA = funcA(Vector.empty)

}

def funcA(vec: Vector): sometype = {
    ...
    ...
    ...
    funcB()
}
def funcB(vec: Vector): sometype = {
  // Here you could append, which returns a new copy of the Vector
  val error = 87
  vec :+ error

}

请记住,建议使用不可变变量。虽然这可能并不总是正确的,但对于大多数只涉及执行CRUD类型逻辑的应用程序,最好使用不可变变量。

您应该首先了解théScala集合的设计,使用var和变量变异的不可变性应该是最后一个选项,在某些特殊情况下,卡拉不是威德,而是用户!您需要了解Scala背后的原理,然后才能解决您的问题!