Wie richte ich ein Paketobjekt an?

9

Ich habe kürzlich entdeckt, dass man das Pimp Meine Bibliothek anreichern-Pattern verwenden kann, um Companion-Objekten mithilfe von .type Methoden hinzuzufügen:

%Vor%

Leider scheint das bei Paketobjekten wie scala.math :

nicht zu funktionieren %Vor%

Ich bekomme den folgenden Compilerfehler:

%Vor%

Ist es möglich, ein Paketobjekt anzureichern?

    
Brian Gordon 19.05.2015, 23:24
quelle

1 Antwort

9

Ich glaube nicht, dass es auf diese Weise möglich ist, obwohl die Dokumentation extrem dünn ist. Der Compiler behandelt das klar anders als ein Singleton. Selbst wenn diese Methode kompiliert wird, würde import scala.math._ sicherlich nicht Ihre Methode min importieren, da die implizite Konvertierung nicht ausgelöst wird. Und, wenn math.customMin möglich wäre, würde das zwei Importe erfordern.

Es ist auf andere Weise möglich. Wir können im Paket scala.math alles definieren, was wir wollen. Wir können jedoch keine Methoden auf oberster Ebene definieren, daher müssen wir einige Objekttricks anwenden, damit es funktioniert.

%Vor%

Einige Tests:

%Vor%     
Michael Zajac 20.05.2015, 01:00
quelle

Tags und Links