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 }