如何转动io.读书人成一个io.阅读更近?



我有一个不需要关闭的io.Reader

stringReader := strings.NewReader("shiny!")

我想把它传递给一个接收io.ReadCloser的方法

func readAndClose(source io.ReadCloser) {
...
}

如何在不专门创建实现Close方法的结构的情况下将io.Reader转换为io.ReadCloser

如果您确定您的io.Reader不需要任何实际关闭,则可以用ioutil.NopCloser将其包装。

Go 1.16 更新

从版本 1.16 开始,ioutil.NopCloser已弃用。

NopCloser已移至io

stringReader := strings.NewReader("shiny!")
stringReadCloser := io.NopCloser(stringReader)

Go 1.15 及更早

版本来自戈多克:

NopCloseer返回一个ReadClose,其中包含一个无操作关闭方法包装提供的Reader r。

因此,我们可以像以下方式应用它:

stringReader := strings.NewReader("shiny!")
stringReadCloser := ioutil.NopCloser(stringReader)

最新更新