请考虑以下代码:
trait A {
def a : Int
}
def f ( a : Int ) = {
def a0 = a
new A {
def a = a0
}
}
Run Code Online (Sandbox Code Playgroud)
问题非常明显:这def a0 = a是一个典型的烦人的样板代码,当引入更多参数时情况才会恶化.
我想知道是否有可能以某种方式直接引用a特征实例的声明中的外部范围的变量,从而摆脱中间体a0.
请记住,改变特征时不允许更改函数输入参数的名称.