databrickscala调用if循环外的变量

时间:2019-06-21 05:51:21

标签: scala databricks

我正在执行以下操作

var total_count=1
if (total_count>=1)
{
  var next_exec_no="2"

} else
{
  var next_exec_no="1"
}
print(next_exec_no) 

但是,在if循环外调用print(next_exec_no)时出现问题 有错误

错误:未找到:值next_exec_no 打印(next_exec_no)

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

next_exec_no 超出范围,在这种情况下,此变量仅在两个if分支内可见。基本上,您正在定义两个新变量

P.S。我建议您以功能性方式使用Scala,因此您不应使用 var ,而应使用 val

解决方案

可变方法:

var total_count=1
var next_exec_no=""

if (total_count>=1)
{
  next_exec_no="2"

} else {
  next_exec_no="1"
}

print(next_exec_no) 

不可变FP方法:

val next_exec_no = if(total_count >= 1) "2" else "1"
print(next_exec_no)