Ich habe kürzlich entdeckt, dass man die
Pimp
Bereichern My Library Muster Methoden Begleiter .type
Objekte mit hinzufügen kann:Wie richte ich ein Paketobjekt an?
object Whatever { }
implicit class WhateverExtensions(val obj: Whatever.type) {
def greet = println("Hi!")
}
Whatever.greet
Leider das gleiche scheint wie nicht scala.math
für Paket-Objekte:
implicit class MathExtensions(val obj: scala.math.type) {
def min(x: Money, y: Money): Money = ???
}
erhalte ich die folgende Compiler-Fehler:
Error:(153, 47) type mismatch; found : math.type required: AnyRef Note that math extends Any, not AnyRef. Such types can participate in value classes, but instances cannot appear in singleton types or in reference comparisons. implicit class MathExtensions(val obj: scala.math.type) extends AnyVal { ^
Kann ein Paketobjekt angereichert werden?
gar nicht viel in der Dokumentation: http://www.scala-lang.org/files/archive/spec/2.11/09-top-level- Definitionen.html # Paket-Objekte. Es scheint unmöglich zu sein, den Typ dieser Sache zu bekommen: 'type T = '' math''.type gibt "Error: (5, 12) stable identifier erforderlich, aber scala. gefunden. type T =' math'. Art". –
Siehe auch: http://www.scala-lang.org/docu/files/packageobjects/packageobjects.html –