如何在 Scala Spark 中更新 if 语句中的 var?

How to update a var inside if-statement in Scala Spark?

我有一个跟踪变量,它应该表示我们是否已经到达嵌套 if-else 语句中的某个分支。这是一个简化的例子

var varChanged = false
if(true) {
  var varChanged = true
}

varChanged //still returns false

我想更新 if 语句中 varChanged 的值。我应该怎么做呢?我不能将 if 语句用作 var varChanged = if(..).. 之类的表达式,因为我将它用作另一个 val 的表达式,而 varChanged 只是我需要的跟踪变量。

删除内部 var 关键字

var varChanged = false
if(true) {
  varChanged = true
}

您通过在内部范围内再次声明来隐藏外部 varChanged

你真的应该尽可能避免使用 vars。