Scala-Konstruktor mit Standardarg, der auf ein anderes Argument verweist

8

Ich würde das zweite Konstruktorargument optional machen und in diesem Fall den Wert des ersten Arguments verwenden. Kann ich das irgendwie? Dieser Code wird nicht kompiliert, da er realUser nicht finden kann:

%Vor%

Ich bin mir sicher, dass ich damit umgehen kann, indem ich meinen eigenen Konstruktor schreibe, aber ich habe mich gefragt, ob es einen prägnanteren Weg gab. Jetzt, wo ich versucht habe, meinen eigenen Konstruktor zu schreiben, ist es nicht so schlimm:

%Vor%

Wenn jemand etwas kürzer als groß dann kommen kann, werde ich sonst meine eigene Antwort posten.

    
Nick 20.10.2011, 10:15
quelle

3 Antworten

5

Danke für die Vorschläge. Ich denke, ich bleibe dabei, das zweite Konstruktor-Formular manuell anzugeben. Hier ist es als Antwort aus Gründen der Vollständigkeit.

%Vor%     
Nick 20.10.2011, 10:48
quelle
11

Ich glaube, Ihre Lösung mit dem Hilfskonstruktor ist die bessere. Ein Parameter ist in seiner eigenen Parameterliste nur in den folgenden nicht sichtbar. Du müsstest also

machen %Vor%

und dann mit

anrufen %Vor%

Nicht zu nett.

    
Didier Dupont 20.10.2011 10:31
quelle
8

Sie können Parameter aus der gleichen Parameterliste nicht als Standardargumente verwenden. Didierds Lösung funktioniert, und wahrscheinlich ist Ihre Lösung mit einem zweiten Konstruktor am elegantesten. Hier ist eine dritte Alternative, die das gefürchtete null verwendet:

%Vor%

Wenn Sie null vermeiden möchten, können Sie die Klasse Opt[A] hier besprochen , wenn es Ihnen nichts ausmacht die Overhead. So oder so, ich würde immer noch mit Ihrer zweiten Konstruktor-Lösung gehen.

    
Jean-Philippe Pellet 20.10.2011 10:36
quelle

Tags und Links