Please consider this code:
trait A {
def a : Int
}
def f ( a : Int ) = {
def a0 = a
new A {
def a = a0
}
}
The problem is quite evident: def a0 = a
is a typical annoying boilerplate code and the situation only worsens when more parameters get introduced.
I am wondering if it's possible to somehow get a direct reference to the a
variable of the outer scope inside the declaration of the instance of the trait and thus to get rid of the intermediate a0
.
Please keep in mind that changing name of input parameter of the function is not allowed as is changing the trait.
See Question&Answers more detail:os