webdevqa.jp.net

Golang io / ioutil NopCloser

誰かがGolangの NopCloser 関数の良い説明を持っていますか?
周りを見回しましたが、Golangのメインドキュメントによる次の説明以外は見つかりませんでした。

NopCloserは、提供されたReaderrをラップするno-opCloseメソッドを使用してReadCloserを返します。

任意のポインタまたは説明をいただければ幸いです。ありがとう。

20
G4143

_io.ReadCloser_ を返す必要があるときはいつでも、Close()が使用可能であることを確認しながら、NopCloserを使用してそのような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
        }
_
22
VonC

io.ReadCloserを必要とする関数に使用されますが、現在のオブジェクト(たとえば、bytes.Buffer)はClose関数を提供していません。

9
OneOfOne