Warum kann ich das nicht tun:
%Vor% Um irgendeine Sequenz von Typen zu vergleichen, die in Int
umwandelbar sind? Wie kann ich ein ähnliches Muster implementieren?
Update: Dies sollte Message.compare(List(1.0, 2.0, 3.0), List(0, 0, 0))
Ein gutes Beispiel dafür, wo das Problem liegt, scheint folgendes zu tun:
%Vor%Scala 2.9.1 explodiert an dieser Stelle irgendwann im Runtime-Code - ich kann nur denken, dass das ein Bug ist.
Sie können jedoch den gewünschten Effekt erzielen, indem Sie Typklassen verwenden: Der folgende Code funktioniert in allen Ihren Beispielen:
%Vor%Dies sollte auch den Vorteil haben, schneller zu sein als die Version, die Strukturtypen verwendet. Wenn Sie eigene Typen hinzufügen müssen, die in Integer konvertierbar sein sollen, können Sie die Numerische Typklasse auf die gleiche Weise wie bei Ссылка für die Standardwerte.
Da es sich um Array
s handelt, benötigen Sie ClassManifest
s.
Die Compiler-Fehlermeldung könnte in diesem Fall nicht klarer IMO sein.
BEARBEITEN:
Sie müssen Sequenzen nicht wirklich in Arrays konvertieren. Folgendes funktioniert gut.
%Vor%