Gibt es eine Möglichkeit zum Kompilieren Zeit Fehler (oder zumindest Warnung) beim Zuweisen von verschiedenen Typ-Aliase, die den gleichen zugrunde liegenden Typ teilen?Scala: Compile-Fehler bei Typ-Alias-Mismatch erzwingen
Mit anderen Worten sagen, ich habe diesen Code:
type Address = String
type City = String
def foo(x:Address) = ...
ich einen Fehler zur Kompilierzeit erhalten möchten/Warnung, wenn ich tun:
val city: City = "Dublin"
foo(city)
Soweit ich das beurteilen kann, die Compiler erlaubt es, weil sie den gleichen zugrunde liegenden Typ sind.
Kann ich Wertfallklassen erstellen? Ich mag die neue Keyword-Verwendung nicht. –
Sie können Value Case-Klassen definieren. Übrigens: Der Grund, warum Sie das 'new'-Schlüsselwort weglassen können, ist die' apply'-Methode des (generierten) Companion-Objekts, so dass Sie nicht unbedingt eine Fallklasse definieren müssen, um das Schlüsselwort los zu werden. –
Ja, ich weiß, ich bevorzuge es nicht, meine eigenen Begleiter für alle Typ-Aliase zu definieren, es ist lang und langweilig^_ ^ –