Ich habe kürzlich entdeckt, dass man das Pimp Meine Bibliothek anreichern-Pattern verwenden kann, um Companion-Objekten mithilfe von .type
Methoden hinzuzufügen:
Leider scheint das bei Paketobjekten wie scala.math
:
Ich bekomme den folgenden Compilerfehler:
%Vor%Ist es möglich, ein Paketobjekt anzureichern?
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.
Einige Tests:
%Vor%Tags und Links scala enrich-my-library