Cómo convertir un slice de bytes ([]byte) a io.Reader en Go
¡Hola a todos! Soy nuevo en Go y me encontré con un problema al trabajar con flujos de datos. Tengo una función que acepta io.Reader para leer datos, por ejemplo, de un archivo o una respuesta HTTP. Pero en mi caso, los datos ya están en memoria como un slice de bytes ([]byte), obtenido después de descomprimir un archivo o procesar JSON.
Aquí hay un ejemplo simplificado de lo que intento hacer:
package main
import (
"fmt"
"io"
"os"
)
func main() {
data := []byte("Hello, World! Это тестовые данные в памяти")
// ¿Cómo pasar data a una función que espera io.Reader?
// Intenté pasar data directamente, pero obtengo un error de compilación:
// cannot use data (type []byte) as type io.Reader in argument to processData
processData(data)
}
func processData(r io.Reader) {
content, _ := io.ReadAll(r)
fmt.Println(string(content))
}
Entiendo que []byte y io.Reader son tipos diferentes.