Golang String para byte e vice -versa

Golang String para byte e vice -versa
Definimos uma string em Go como uma fatia somente leitura de bytes. Uma string pode segurar o texto unicode na codificação UTF-8 ou outro formato predefinido. Mas como uma corda é basicamente uma fatia de bytes, ela não precisa necessariamente manter esses tipos.

Neste artigo, você aprenderá como converter uma string em uma matriz de bytes e uma matriz de bytes em uma string. Lembre -se de que este artigo não serve como uma introdução a strings ou bytes.

Converter string em byte

Antes de aprendermos a converter uma string em um byte, vamos definir o que é um byte. Um byte refere-se a um número inteiro não assinado de 8 bits. Bytes são muito comuns ao trabalhar com fatias.

Em Go, podemos converter uma string em um byte usando a função byte ().

A sintaxe da função é como mostrado:

[] Byte (String)

A função leva a string como o argumento. A função retorna uma fatia com todos os bytes dos caracteres na string especificada.

Vamos ver um exemplo:

Pacote principal
importar "fmt"
func main ()
STR: = "Linuxhint"
byte_arr: = [] byte (str)
fmt.Println (byte_arr)

No exemplo acima, definimos uma variável chamada "str" ​​com o valor "linuxhint".

Em seguida, usamos o método byte () para converter a string em uma matriz de bytes.

O código acima retorna uma saída como:

$ go run string_to_byte.ir
[76 105 110 117 120 104 105 110 116]

Copie string para fatia de byte

Também podemos converter uma string em um byte copiando uma string para uma fatia Byter. Realizamos isso usando o método copy ().

O trecho de código abaixo mostra como conseguir isso:

Pacote principal
importar "fmt"
func main ()
copy_string ()

func copy_string ()
// fatia vazia
byte_slice: = make ([] byte, 10)
STR: = "Linuxhint"
str_copy: = copy (byte_slice, str)
fmt.Println (str_copy)
fmt.Println (byte_slice)

No exemplo acima, criamos uma fatia vazia usando a função Make.

Em seguida, usamos o método copy () para copiar a string para a fatia de byte. Podemos ver o número de bytes copiados para a fatia usando o FMT.Println (str_copy).

Para ver a string completa em bytes, use o FMT.Println (byte_slice):

Um exemplo de saída é como mostrado:

9 // copiou bytes
[76 105 110 117 120 104 105 110 116 0] // fatia de byte

Converter byte em string

O primeiro método que podemos usar para converter uma matriz de bytes em uma string é o método newBuffer (). Isso cria um novo buffer e, em seguida, podemos usar o método String (), como mostrado no exemplo abaixo:

Pacote principal
importação (
"Bytes"
"FMT"
)
func main ()
arr: = [] byte 'l', 'i', 'n', 'u', 'x'
str: = bytes.NewBuffer (arr).Corda()
fmt.Println (str)

Começamos criando uma matriz de bytes. Em seguida, usamos o método newBuffer () para criar um novo buffer e depois usar o método string () para obter a saída da string.

A função resultante é como:

$ go run byte_to_string.ir
Linux

Converter byte em string com fatia

Outra técnica que podemos usar para converter uma matriz de bytes em corda é. Um exemplo ilustra como usar este método:

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

O código acima deve pegar a matriz de bytes e convertê -lo em uma string.

Converter byte em string usando o método sprintf ()

A função sprintf () permite que você converta uma matriz de bytes em uma string. Considere o exemplo mostrado abaixo:

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

O método acima deve converter a matriz de bytes em uma string. Lembre -se de que esse método é considerado mais lento em comparação com outras opções.

Conclusão

Neste guia, exploramos o mundo da linguagem de programação Go e como converter um byte em uma corda e vice -versa.

Codificação feliz!