请帮助我理解为什么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()
^
答案 0 :(得分:3)
有两个问题。首先,您尝试达到范围之外的afd
值。它在match
语句中定义,并且只能在该语句中访问(在此特定的case
中)。 match
返回值,因此您可以使用类似的内容:
val afd = 1 match {
case 0 => "zero"
case 1 => "one"
}
第二,即使match
以外的地方都可以访问,afd
的类型为String
,而String
没有show
方法。您将必须使用例如print(afd)
进行打印。