Golang io/ioutil NopCloser

有没有人对 Golang 的NopCloser功能有很好的解释?
我环顾四周,但除了 Golang 的主要文档对以下内容的解释外,没有找到任何内容:

NopCloser 返回一个 ReadCloser,其中包含一个封装了提供的 Reader r 的无操作 Close 方法。

任何指针或解释将不胜感激。谢谢。


桃花长相依
浏览 595回答 3
3回答

繁星淼淼

每当您需要返回 an 时io.ReadCloser,同时确保 aClose()可用,您可以使用 aNopCloser来构建这样的 ReaderCloser。你可以在gorest 的这个分支中看到一个例子,在util.go//Marshals the data in interface i into a byte slice, using the Marhaller/Unmarshaller specified in mime.//The Marhaller/Unmarshaller must have been registered before using gorest.RegisterMarshallerfunc InterfaceToBytes(i interface{}, mime string) (io.ReadCloser, error) {    v := reflect.ValueOf(i)    if v.Kind() == reflect.Ptr {        v = v.Elem()    }    switch v.Kind() {    case reflect.Bool:        x := v.Bool()        if x {            return ioutil.NopCloser(bytes.NewBuffer([]byte("true"))), nil        }

千巷猫影

它用于需要io.ReadCloser但当前对象(例如 a bytes.Buffer)不提供 Close 函数的函数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go