Avatar ·

如何在Go中将字节切片([]byte)转换为io.Reader?

大家好!我是Go新手,在处理数据流时遇到了问题。我有一个函数接受io.Reader来读取数据,例如从文件或HTTP响应中读取。但在我的情况下,数据已经在内存中,以字节切片([]byte)的形式存在,这是解压归档或处理JSON后得到的。

以下是我尝试做的简化示例:

package main

import (
    "fmt"
    "io"
    "os"
)

func main() {
    data := []byte("Hello, World! 这是内存中的测试数据")

    // 如何将data传递给期望io.Reader的函数?
    // 我尝试直接传递data,但遇到编译错误:
    // 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))
}

我明白[]byte和io.Reader是不同的类型,