"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo convertir de manera eficiente cadenas UTF-8 en matrices de bytes en Go?

¿Cómo convertir de manera eficiente cadenas UTF-8 en matrices de bytes en Go?

Publicado el 2024-11-08
Navegar:291

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

Conversión de cadenas UTF-8 en matrices de bytes

Desarmar JSON requiere una entrada de segmento de bytes, mientras que las cadenas se almacenan como UTF-8 en Go . Este artículo explora la conversión eficiente de cadenas UTF-8 a matrices de bytes.

Conversión directa

Go permite convertir cadenas en segmentos de bytes, creando una copia de los bytes de la cadena :

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

Sin embargo, para cadenas grandes, este enfoque es ineficiente debido a la copia.

Usando io.Reader

Una alternativa eficiente es usar strings.NewReader() para crear un io.Reader que lea la cadena sin copiar:

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

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

Este enfoque evita copiar la cadena.

Textos JSON pequeños

Para textos JSON pequeños, la conversión directa sigue siendo una opción rápida:

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

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

Nota: Al leer JSON desde un io.Reader (por ejemplo, un archivo o una red), pase el archivo io. Lector directamente a json.NewDecoder() sin lecturas de cadenas intermedias.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3