Heim > Backend-Entwicklung > Golang > Wie füge ich zwei []Byte-Slices in Go korrekt hinzu?

Wie füge ich zwei []Byte-Slices in Go korrekt hinzu?

Susan Sarandon
Freigeben: 2024-12-06 19:16:13
Original
730 Leute haben es durchsucht

How to Correctly Append Two []byte Slices in Go?

Wie kann ich das Anhängen von Go mit zwei []Byte-Slices oder Arrays verwenden?

In Go kann es beim Anhängen von zwei Byte-Array-Slices zu Fehlern kommen aufgrund einer Typinkongruenz. Hier ist ein genauerer Blick und der richtige Ansatz, um dies zu erreichen.

Problem:

Beim Versuch, zwei Byte-Array-Slices anzuhängen, treten Fehler wie „[Array] kann nicht verwendet werden“ auf. type []uint8) as type uint8 in append" auftreten. Dies liegt daran, dass die Append-Funktion Argumente erwartet, die mit dem Elementtyp des Slice übereinstimmen.

Lösung:

Um dieses Problem zu beheben, müssen Sie die Slice-Typen explizit angeben Verwenden der Syntax []T... für das letzte Argument. In diesem Fall ist T []Byte.

Hier ist ein Beispiel:

package main

import (
    "fmt"
)

func main() {
    one := make([]byte, 2)
    two := make([]byte, 2)
    one[0] = 0x00
    one[1] = 0x01
    two[0] = 0x02
    two[1] = 0x03

    result := append(one[:], two[:]...)
    fmt.Println(result)
}
Nach dem Login kopieren

In diesem Code wird das Ergebnis als „[0 1 2 3]“ gedruckt, also effektiv kombiniert die zwei Byte-Array-Slices. Die „…“-Notation stellt sicher, dass zwei[:] als Slice-Argument übergeben wird.

Zusätzliche Hinweise:

  • Beim Anhängen von zwei Slices des Gleicher Typ, die Signatur von append lautet: append(s []T, a ...T)
  • Der Rückgabewert von append ist ein neues Slice und das ursprüngliche Slice bleibt erhalten unverändert.
  • Sie können auch einzelne Bytewerte mit der Append-Funktion anhängen, z. B.: append(one, 0x02, 0x03)

Indem Sie diese Richtlinien befolgen, können Sie mehrere Byte korrekt anhängen Array-Slices in Go.

Das obige ist der detaillierte Inhalt vonWie füge ich zwei []Byte-Slices in Go korrekt hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage