为了账号安全,请及时绑定邮箱和手机立即绑定

Golang io/ioutil NopCloser

Golang io/ioutil NopCloser

Go
桃花长相依 2021-09-13 10:53:24
有没有人对 Golang 的NopCloser功能有很好的解释?我环顾四周,但除了 Golang 的主要文档对以下内容的解释外,没有找到任何内容:NopCloser 返回一个 ReadCloser,其中包含一个封装了提供的 Reader r 的无操作 Close 方法。任何指针或解释将不胜感激。谢谢。
查看完整描述

3 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

每当您需要返回 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.RegisterMarshaller

func 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

        }


查看完整回答
反对 回复 2021-09-13
?
千巷猫影

TA贡献1829条经验 获得超7个赞

它用于需要io.ReadCloser但当前对象(例如 a bytes.Buffer)不提供 Close 函数的函数。


查看完整回答
反对 回复 2021-09-13
  • 3 回答
  • 0 关注
  • 594 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信