Моля, разгледайте този код:
trait A {
def a : Int
}
def f ( a : Int ) = {
def a0 = a
new A {
def a = a0
}
}
Проблемът е доста очевиден: def a0 = a
е типичен досаден шаблонен код и ситуацията само се влошава, когато се въведат повече параметри.
Чудя се дали е възможно по някакъв начин да получа директна препратка към променливата a
на външния обхват вътре в декларацията на екземпляра на чертата и по този начин да се отърва от междинния a0
.
Моля, имайте предвид, че промяната на името на входния параметър на функцията не е разрешена, както и промяната на характеристиката.