Scala 访问类中IF子句中定义的值
我定义了这样一个类Scala 访问类中IF子句中定义的值,scala,class,Scala,Class,我定义了这样一个类 class foo { var a = false private def fooFunc() = { a = true "AAAA" } if (!a) { val d = fooFunc() } } 我将其实例化为 val myFoo = new foo 确实执行了fooFunc函数,但我无法访问d。你有什么建议吗 多谢各位 您无法访问d,因为它是在if块的范围内定义的,而不是在类本身的范围内 换一个怎么样 if(!a){val d=f
class foo {
var a = false
private def fooFunc() = {
a = true
"AAAA"
}
if (!a) { val d = fooFunc() }
}
我将其实例化为
val myFoo = new foo
确实执行了fooFunc函数,但我无法访问d。你有什么建议吗
多谢各位 您无法访问
d
,因为它是在if
块的范围内定义的,而不是在类本身的范围内
换一个怎么样
if(!a){val d=fooFunc()}
借
lazy val d=if(!a)Some(fooFunc())else None
在foo
中将其设置为lazy val
,并忘记a
。更一般地说,忘记var
(除了在Akka Actors中)。d
仅存在于条件表达式的范围内