"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como converter com eficiência strings UTF-8 em matrizes de bytes no Go?

Como converter com eficiência strings UTF-8 em matrizes de bytes no Go?

Publicado em 2024-11-08
Navegar:331

How to Efficiently Convert UTF-8 Strings to Byte Arrays in Go?

Conversão de strings UTF-8 em matrizes de bytes

Desempacotar JSON requer uma entrada de fatia de bytes, enquanto as strings são armazenadas como UTF-8 em Go . Este artigo explora a conversão eficiente de strings UTF-8 em matrizes de bytes.

Conversão direta

Go permite converter strings em fatias de bytes, criando uma cópia dos bytes da string :

s := "some text"
b := []byte(s)

No entanto, para strings grandes, essa abordagem é ineficiente devido à cópia.

Usando io.Reader

Uma alternativa eficiente é usar strings.NewReader() para criar um io.Reader que lê a string sem copiar:

s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.NewDecoder(strings.NewReader(s)).Decode(&result)

Essa abordagem evita copiar a string.

Pequenos textos JSON

Para textos JSON pequenos, a conversão direta continua sendo uma opção rápida:

s := `{ "somekey": "somevalue" }`

var result interface{}
err := json.Unmarshal([]byte(s), &result)

Nota: Ao ler JSON de um io.Reader (por exemplo, arquivo ou rede), passe o io. Leitor diretamente para json.NewDecoder() sem leituras de string intermediárias.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3