Konvertieren eine Zeichenfolge in ein Byte-Array in Golang

Jay Singh 26 August 2022
  1. Verwenden der Funktion byte() zum Konvertieren von Strings in Byte-Arrays in Golang
  2. Verwenden von []byte(strToConvert) zum Konvertieren von Strings in Byte-Arrays in Golang
  3. Verwenden der Funktion copy() zum Konvertieren von Strings in Byte-Arrays in Golang
  4. Verwenden von []byte zum Konvertieren von Strings in Byte-Slices in Golang
Konvertieren eine Zeichenfolge in ein Byte-Array in Golang

Sie sind nicht allein, wenn Sie neu bei Go sind und sich fragen, warum dies ein Byte-Array ist. Als ich anfing, Go zu lernen, war es eines der ersten Dinge, die mich ein befreundeter Informatiker fragte.

Sie erhalten ein Slice, das die Bytes des Strings enthält, wenn Sie einen String in Golang in ein Byte-Array konvertieren. Ein String in Go ist nur ein schreibgeschützter Byte-Slice. Eine Zeichenfolge kann eine beliebige Anzahl von Bytes enthalten; deshalb ist es wichtig, das gleich zu sagen.

Unicode-Text, UTF-8-Text oder andere angegebene Formate sind nicht erforderlich. Inhaltlich ist ein String identisch mit einem Byte-Slice.

Hier sind einige hilfreiche Tipps für die Arbeit mit Zeichenfolgen in Go.

Verwenden der Funktion byte() zum Konvertieren von Strings in Byte-Arrays in Golang

Verwenden Sie die Funktion byte() in Golang, um einen String in ein Byte-Array zu konvertieren. Ein Byte ist eine vorzeichenlose 8-Bit-Ganzzahl. Ein Array wird von der byte()-Methode zurückgegeben, die einen String als Eingabe nimmt.

Wenn Sie eine Zeichenfolge erstellen, erstellen Sie tatsächlich ein Array von Bytes. Dadurch können Sie einzelne Bytes wie ein Array lesen.

Der folgende Code beispielsweise durchläuft jedes Byte in einem String und gibt es sowohl als String als auch als Byte aus.

package main

import "fmt"

func main() {
	str := "hello boss!"
	data := []byte(str)
	fmt.Println(data)
}

Ausgabe:

[104 101 108 108 111 32 98 111 115 115 33]

Verwenden von []byte(strToConvert) zum Konvertieren von Strings in Byte-Arrays in Golang

In diesem Beispiel verwenden wir []byte(strToConvert), um in Golang eine Zeichenfolge in ein Byte-Array zu konvertieren.

package main

import (
	"fmt"
)

func main() {
	var strToConvert string
	strToConvert = "hello boss!"
	byteString := []byte(strToConvert)
	fmt.Println(byteString)
}

Ausgabe:

[104 101 108 108 111 32 98 111 115 115 33]

Verwenden der Funktion copy() zum Konvertieren von Strings in Byte-Arrays in Golang

In diesem Beispiel wird der String mit der Funktion copy() in ein Byte-Array kopiert. Als Ergebnis haben wir ein Byte-Array deklariert und den String mit der Kopierfunktion dorthin kopiert.

package main

import (
	"fmt"
)

func main() {
	var strToConvert string
	strToConvert = "hello boss!"
	byteString := make([]byte, len(strToConvert))
	copy(byteString, strToConvert)
	fmt.Println(byteString)
}

Ausgabe:

[104 101 108 108 111 32 98 111 115 115 33]

Verwenden von []byte zum Konvertieren von Strings in Byte-Slices in Golang

Ein String kann in Go in einen Byte-Slice []byte konvertiert werden, und ein Byte-Slice kann zurück in einen String konvertiert werden. Es ist ein einfacher Prozess, der mit jeder anderen Art von Änderung identisch zu sein scheint.

Diese Konvertierung wird häufig verwendet, um eine Zeichenfolge in eine Funktion einzuspeisen, die Byte-Slices verwendet, oder um eine Byte-Slice in eine Funktion einzuspeisen, die eine Zeichenfolge erwartet.

package main

import "fmt"

func main() {
	var s string = "hello boss!"
	fmt.Println(s)
	var b []byte
	b = []byte(s)
	fmt.Println(b)
	for i := range b {
		fmt.Println(string(b[i]))
	}
	s = string(b)
	fmt.Println(s)
}

Ausgabe:

hello boss!
[104 101 108 108 111 32 98 111 115 115 33]
h
e
l
l
o
 
b
o
s
s
!
hello boss!

Verwandter Artikel - Go String