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