有人对Golang的 NopCloser 函数有很好的解释吗?我环顾四周,但除了Golang主要文档对以下内容的解释外,没有找到其他内容:



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

最佳答案

每当需要返回 io.ReadCloser 并确保Close()可用时,都可以使用NopCloser来构建此类ReaderCloser。

您可以在fork of 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
        }

关于go - Golang io/ioutil NopCloser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28158990/

10-11 07:26