在案例陈述之外无法识别变量

时间:2019-03-24 18:09:00

标签: scala apache-spark

请帮助我理解为什么case语句之外无法识别变量'afd'的原因。我运行下面的代码,并得到以下错误:谢谢!

1 match {
  case 0 => "zero"
  case 1 => val afd = "one"
}

afd.show()

res1784: Any = ()
<console>:492: error: not found: value afd
       afd.show()
       ^

1 个答案:

答案 0 :(得分:3)

有两个问题。首先,您尝试达到范围之外的afd值。它在match语句中定义,并且只能在该语句中访问(在此特定的case中)。 match返回值,因此您可以使用类似的内容:

val afd = 1 match {
  case 0 => "zero"
  case 1 => "one"
}

第二,即使match以外的地方都可以访问,afd的类型为String,而String没有show方法。您将必须使用例如print(afd)进行打印。