Scala - seltsamer Kompilierfehler (mehrere überladene Alternativen einer Methode definieren Standardargumente)

8

In Scala IDE erhalte ich den folgenden Fehler bezüglich der Klasse, die ich kompilieren soll:

  

im Objekt MapArea, mehrere überladene Alternativen der Methode addAnim   Definieren Sie Standardargumente.

Also ja, das tun sie! Na und? Ich verstehe die Philosophie davon nicht ...

UPDATE:

Es stellt sich heraus, dass es eine Situation geben kann, in der der Compiler nicht weiß, welche Methode er wählen soll (wie Tomasz Nurkiewicz betont), ok, ich verstehe ... aber in meiner Situation können diese beiden Methoden klar unterschieden werden. Hier ist das genaue Stück Code (mit allen ursprünglichen Namen und Sachen dieses Mal erhalten):

%Vor%     
noncom 07.06.2012, 07:10
quelle

3 Antworten

9

Es ist nicht möglich, zwei Methoden mit Standardparametern und demselben Namen zu verwenden. Scala erzeugt Methoden, um Standardwerte mit Namen basierend auf dem Namen der Zielmethode zu erhalten, sodass eine Art Namenskollision auftreten kann.

%Vor%     
senia 07.06.2012, 08:50
quelle
5

Sie zeigen Ihren Code nicht, aber hier ist ein einfaches Beispiel:

%Vor%

Wenn ich jetzt anrufe:

%Vor%

Welche Methode sollte aufgerufen werden? Das Objekt C wird nicht kompiliert, da der Compiler nicht raten kann, welche addAnim -Methode Sie meinen, wenn Sie kein Argument angeben.

    
Tomasz Nurkiewicz 07.06.2012 07:13
quelle
3

Warum kombinieren Sie nicht beide Methoden in einem, indem Sie w und h optional machen, z. B.

%Vor%     
Landei 07.06.2012 08:57
quelle

Tags und Links