Ich benutze big.NewInt (int64 (e)) .Bytes () um ein int32 in ein Byte-Array zu konvertieren. Gibt es einen eleganteren Weg, dies zu tun?
Ich erwarte, dass AQAB der base64-codierte Wert von e
ist %Vor%Ausgabe:
%Vor%Bearbeiten:
Ich habe b2 und b4 verglichen:
%Vor%Ich werde b2 für jetzt verwenden ...
Bei dieser Art von Aufgabe sollten Ihre ersten Optionen immer encoding/binary
sein, und wenn das so ist ungenügende, bitweise Mathematik. In einigen Fällen ist der Aufwand beim Kopieren von Daten jedoch zu groß oder diese sicheren Lösungen sind zu langsam:
Obwohl ich es nicht elegant nennen würde, können Sie Gos unsafe
und reflect
* Pakete, um das sehr schnell zu machen. Denken Sie daran, dies kopiert nicht die Daten; Es gibt Ihnen nur einen anderen "Blick" darauf. Und gut-unsicher zu sein bedeutet, dass Sie sehr vorsichtig sein müssen (Hallo Unit-Tests und Code Review) und denken Sie daran, dass Sie Go's brechen Speichersicherheit . Wenn jedoch die Ausführungsgeschwindigkeit das dominierende Problem ist und Ihr Team zustimmt, dass unsafe
gerechtfertigt ist, %Co_de% kann selten geschlagen werden.
* Hinweis: Möglicherweise möchten Sie unsafe
lieber als eine Konstante verwenden. Ich mag die Konstante besser.
Update: Hier sind einige Benchmark-Ergebnisse:
%Vor%Tags und Links go