Bitte diesem Code betrachten:Erster Bezug auf einen Parameter der äußeren Funktion einen widersprüchlichen Namen mit
trait A {
def a : Int
}
def f (a : Int) = {
def a0 = a
new A {
def a = a0
}
}
Das Problem ist ganz offensichtlich: def a0 = a
ist ein typischer ärgerlich Standardcode und die Situation nur verschlimmert, wenn mehrere Parameter erhalten eingeführt.
Ich frage mich, ob es möglich ist, irgendwie eine direkte Referenz auf die a
Variable des äußeren Bereichs innerhalb der Deklaration der Instanz des Merkmals zu bekommen und damit das Zwischenprodukt a0
loszuwerden.
Bitte beachten Sie, dass das Ändern des Namens des Eingabeparameters der Funktion nicht zulässig ist, da dies das Merkmal ändert.
Vielen Dank, anonymer Up-Voter. Ich habe niemals das Vertrauen in dich verloren. Aber der wahre Dank geht an die Leute, die verrückte Fragen stellen, und an die anderen Leute, die ihnen so schnell antworten, dass, wenn ich an etwas denke, es wirklich verrückt sein muss. –