scala - Scala for 循环可以修改其范围之外的变量吗?

标签 scala

例如假设我有以下内容

  var lastSecurity = ""

  def allSecurities = for {
    security <- lastTrade.keySet.toList
    lastSecurity = security
  } yield security

眼下
lastSecurity = security

似乎是在范围内创建一个新变量,而不是修改第一行代码中声明的变量。

最佳答案

试试这个:

var lastSecurity = ""

def allSecurities = for {
  security <- lastTrade.keySet.toList
} yield {
  lastSecurity = security
  security
}

关于scala - Scala for 循环可以修改其范围之外的变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7087353/

相关文章:

scala - 在sbt中同一个项目下添加插件

java - 如何在不使用collect函数的情况下有效地将rdd转换为list

scala - spark中的求和向量列

scala不喜欢akka中的自变量?

scala - Spark中随机初始化的数据框

scala - 使用scalaz的free monad时如何避免堆栈溢出?

scala - 计算字符串中字符的所有出现次数

scala - 用于 Play2/Scala 的 Paypal

scala - 从 Spark udf 记录到驱动程序

scala - 使用异常将多个值插入表中