Heim > Backend-Entwicklung > Golang > Wie konvertiert man ein Go []int8-Slice effizient in einen String?

Wie konvertiert man ein Go []int8-Slice effizient in einen String?

Barbara Streisand
Freigeben: 2024-12-15 10:44:10
Original
498 Leute haben es durchsucht

How to Efficiently Convert a Go []int8 Slice to a String?

Konvertieren von []int8 in String

Problem:

So konvertieren Sie ein Slice effizient von int8 ([]int8) in einen String? Die Standard-String(Byteslice)-Konvertierung für []byte schlägt für []int8 mit der Fehlermeldung „Kann nicht in den Typ string konvertiert“ fehl.

Lösung:

Da [] int8 und []byte haben unterschiedliche Typen, eine direkte Konvertierung ist nicht möglich. Daher ist eine manuelle Konvertierung erforderlich.

Der Konvertierungsprozess umfasst drei Schritte:

  1. Int8 in Byte konvertieren: Wandeln Sie jeden Int8-Wert mithilfe des Bytes in ein Byte um (v) Konvertierung.
  2. Erstellen Sie ein Byte-Slice: Weisen Sie ein []Byte zu Slice mit der gleichen Länge wie das Eingabe-Slice.
  3. Werte in Byte-Slice kopieren: Ordnen Sie die konvertierten Bytes dem Byte-Slice mithilfe der Indizierung ([]) zu.

Code-Implementierung:

Der folgende Go-Code demonstriert die Konvertierung:

func B2S(bs []int8) string {
    b := make([]byte, len(bs))
    for i, v := range bs {
        b[i] = byte(v)
    }
    return string(b)
}
Nach dem Login kopieren

Dieser Code stellt sicher, dass int8-Werte korrekt in Bytes konvertiert werden, was zu einer genauen Zeichenfolgendarstellung führt.

Hinweis:

Obwohl in der Problemstellung zunächst []int8 erwähnt wurde, wurde sie später vom Fragesteller in []uint8 korrigiert. Für []uint8 ist eine direkte Konvertierung in einen String mit string(ba) möglich, da byte ein Alias ​​für uint8 ist.

Das obige ist der detaillierte Inhalt vonWie konvertiert man ein Go []int8-Slice effizient in einen String?. 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