Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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 for循环能否修改其范围之外的变量?_Scala - Fatal编程技术网

Scala for循环能否修改其范围之外的变量?

Scala for循环能否修改其范围之外的变量?,scala,Scala,例如,假设我有以下内容 var lastSecurity = "" def allSecurities = for { security <- lastTrade.keySet.toList lastSecurity = security } yield security 似乎正在范围中创建新变量,而不是修改第一行代码中声明的变量。请尝试以下操作: var lastSecurity = "" def allSecurities = for { secu

例如,假设我有以下内容

  var lastSecurity = ""

  def allSecurities = for {
    security <- lastTrade.keySet.toList
    lastSecurity = security
  } yield security
似乎正在范围中创建新变量,而不是修改第一行代码中声明的变量。

请尝试以下操作:

var lastSecurity = ""

def allSecurities = for {
  security <- lastTrade.keySet.toList
} yield {
  lastSecurity = security
  security
}
var lastSecurity=“”
def allSecurities=for{
安全性就像

var a = 1
{
  var a = 2
  println(a)
}
println(a)
哪张照片

2
1
无论是
var
s还是
val
s,这都无关紧要。在Scala中,您可以从外部范围对变量进行阴影处理,但如果您不得不使用
val
关键字,即用于理解、匿名函数和模式匹配,这可能会导致一些混淆

2
1