Verbesserung der Codeklarheit in Go: Alternativer Ansatz zum Codieren eines Byte-Slices in ein Int64
Codieren eines Byte-Slices in der Programmiersprache Go in ein int64 erfordert typischerweise die Verwendung von Bitverschiebungen und bitweisen Operatoren. Während der folgende Code diesen Prozess demonstriert:
func main() { var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244} var data int64 for i := 0; i < 8; i++ { data |= int64(mySlice[i] & byte(255)) << uint((8*8)-((i+1)*8)) } fmt.Println(data) }
Ein alternativer Ansatz bietet mehr Klarheit und Einfachheit:
func main() { var mySlice = []byte{244, 244, 244, 244, 244, 244, 244, 244} data := int64(0) for _, b := range mySlice { data = (data << 8) | int64(b) } fmt.Printf("%d\n", data) }
Dieser überarbeitete Code verwendet das Schlüsselwort „range“, um durch das Byte-Slice und die Verschiebungen zu iterieren den aktuellen Datenwert, der um 8 Bits verbleibt, und verknüpft das Ergebnis mit dem Bytewert durch ODER. Dieser Ansatz bietet eine intuitivere und elegantere Lösung und erleichtert das Verständnis des Codierungsprozesses.
Darüber hinaus finden Sie den Playground-Link zur Vereinfachung unter https://go.dev/play/p/aemkEg7a6S5 beim Testen dieser alternativen Methode.
Das obige ist der detaillierte Inhalt vonWie kann ich die Codeklarheit verbessern, wenn ich in Go ein Byte-Slice in ein Int64 kodiere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!