Was ist der prägnanteste Weg, um eine Variable vom Typ Short in Scala zu inkrementieren?

8

Ich habe in letzter Zeit ein bisschen an der Implementierung eines binären Netzwerkprotokolls in Scala gearbeitet. Viele der Felder in den Paketen sind natürlich Scala Shorts zugeordnet. Ich möchte eine Short Variable prägnant erhöhen (kein Wert). Im Idealfall möchte ich etwas wie s += 1 (was für Ints funktioniert).

%Vor%

Der Operator += ist nicht auf Short definiert, daher scheint es eine implizite Konvertierung von s in eine Int vor der Addition zu geben. Außerdem gibt Short s + -Operator ein Int zurück. So funktioniert es bei Ints:

%Vor%

Für jetzt gehe ich mit s = (s + 1).toShort

Irgendwelche Ideen?

    
kilo 06.08.2015, 21:46
quelle

1 Antwort

7

Sie können eine implizite Methode definieren, die Int in Short konvertiert:

%Vor%

Der Compiler wird es verwenden, um die Typen übereinstimmen zu lassen. Beachten Sie jedoch, dass das implizit auch einen Mangel hat, irgendwo könnte eine Konvertierung stattfinden, ohne auch nur zu wissen warum, nur weil die Methode in den Bereich importiert wurde, leidet auch die Lesbarkeit des Codes.

    
Ende Neu 06.08.2015, 22:04
quelle