Stringa Golang su byte e viceversa

Stringa Golang su byte e viceversa
Definiamo una stringa in GO come una fetta di byte di sola lettura. Una stringa può contenere il testo Unicode in codifica UTF-8 o altro formato predefinito. Ma poiché una stringa è fondamentalmente una fetta di byte, non deve necessariamente contenere tali tipi.

In questo articolo, imparerai come convertire una stringa in un array di byte e un array di byte in una stringa. Tieni presente che questo articolo non serve da introduzione a stringhe o byte in Go.

Convertire la stringa in byte

Prima di imparare a convertire una stringa in un byte, definiamo cos'è un byte. Un byte si riferisce a un numero intero senza segno a 8 bit. I byte sono molto comuni quando si lavora con le fette.

In GO, possiamo convertire una stringa in un byte usando la funzione byte ().

La sintassi della funzione è come mostrata:

[] byte (stringa)

La funzione prende la stringa come argomento. La funzione restituisce una fetta con tutti i byte dei caratteri nella stringa specificata.

Vediamo un esempio:

Pacchetto principale
Importa "FMT"
func main ()
STR: = "LinuxHint"
byte_arr: = [] byte (str)
fmt.Println (byte_arr)

Nell'esempio sopra, definiamo una variabile chiamata "STR" con il valore "Linuxhint".

Quindi utilizziamo il metodo byte () per convertire la stringa in un array di byte.

Il codice sopra restituisce un output come:

$ go runing string_to_byte.andare
[76 105 110 117 120 104 105 110 116]

Copia stringa su byte fetta

Possiamo anche convertire una stringa in un byte copiando una stringa in una fetta di byter. Lo realizziamo utilizzando il metodo copy ().

Lo snippet di codice di seguito mostra come raggiungere questo obiettivo:

Pacchetto principale
Importa "FMT"
func main ()
copy_string ()

func copy_string ()
// fetta vuota
byte_slice: = make ([] byte, 10)
STR: = "LinuxHint"
str_copy: = copy (byte_slice, str)
fmt.Println (str_copy)
fmt.Println (byte_slice)

Nell'esempio sopra, creiamo una fetta vuota usando la funzione di making.

Quindi utilizziamo il metodo Copy () per copiare la stringa sulla fetta di byte. Possiamo vedere il numero di byte copiati sulla fetta usando l'FMT.Println (str_copy).

Per visualizzare la stringa completa in byte, utilizzare FMT.Println (byte_slice):

Un output di esempio è come mostrato:

9 // byte copiate
[76 105 110 117 120 104 105 110 116 0] // fetta di byte

Convertire il byte in stringa

Il primo metodo che possiamo usare per convertire un array di byte in una stringa è il metodo NewBuffer (). Questo crea un nuovo buffer e quindi possiamo usare il metodo String () come mostrato nell'esempio seguente:

Pacchetto principale
importazione (
"byte"
"FMT"
)
func main ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
str: = byte.NewBuffer (ARR).Corda()
fmt.Println (STR)

Iniziamo creando un array di byte. Quindi utilizziamo il metodo newBuffer () per creare un nuovo buffer e quindi utilizzare il metodo String () per ottenere l'output della stringa.

La funzione risultante è come:

$ go run byte_to_string.andare
Linux

Converti il ​​byte in stringa con taglio

Un'altra tecnica che possiamo usare per convertire un array di byte in stringa è tagliare. Un esempio illustra come usare questo metodo:

func slinging ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
str: = string (arr [:])
fmt.Println (STR)

Il codice sopra dovrebbe prendere l'array di byte e convertirlo in una stringa.

Converti byte in stringa usando il metodo Sprintf ()

La funzione sprintf () consente di convertire un array di byte in una stringa. Considera l'esempio mostrato di seguito:

func sprintf_method ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
STR: = FMT.Sprintf ("%s", arr)
fmt.Println (STR)

Il metodo sopra deve convertire l'array di byte in una stringa. Tieni presente che questo metodo è considerato più lento rispetto ad altre opzioni.

Conclusione

In questa guida, abbiamo esplorato il mondo della programmazione del mondo e come convertire un byte in una stringa e viceversa.

Codice felice!