在Scala中,是否有任何继承本地方法变量的机制?

del*_*ber 1 scala

例如,假设我有

class Parent {

    def method() {
        var myvar = "test"
    }

} 
Run Code Online (Sandbox Code Playgroud)

是否有任何机制可以访问子类中的myvar?

编辑:

我正在尝试构建一个以现有语言为模型的DSL.该语言具有诸如此类的功能

onTrade {
    if (price == ...) // will compile
}

onDayStart {
    if (price == ...) // will not compile
}
Run Code Online (Sandbox Code Playgroud)

就好像price是一个全局变量,但是有编译时检查以确保它只在正确的上下文中使用.我在想一种模拟方法,就是让局部变量可以在子类中重写.就像是

// Parent
onTrade {
    var price = ...
}

// Child
onTrade {
    if (price == ...)
    if (somethingelse == ...) // will not compile
}
Run Code Online (Sandbox Code Playgroud)

jef*_*unt 9

并不是的.这是你的范围.如果希望它在不同级别可见,则应该更改变量本身的范围.

例如,如果要在类级别定义它,可以这样分享.如果局部变量实际上不是本地变量,那么它们就不是本地变量.

范围是嵌套的,从最广泛到最本地.第2章,第 Scala语言参考中的16章涵盖了"标识符,名称和范围",它更详细地解释了这一点.