读写接口
读的接口声明如下:
type Reader interface { Read(p []byte) (n int, err error)
}
写接口声明如下:
type Writer interface { Write(p []byte) (n int, err error)
}
结合compress/gzip
包,我们来了解一下这两个接口。gzip
中包括两个功能:压缩和解压缩。
解压缩的情况,gzip
提供了gzip.Reader
对象,用来从压缩的内容中读区被压缩前的原始内容。对象的创建函数如下:
func NewReader(r io.Reader) (*Reader, error)
压缩的情况也类似:
func NewWriter(w io.Writer) *Writer
对一个被gzip
压缩的字符串,该如何转换为io.Reader
/io.Writer
呢? bytes
包提供了Buffer
对象,就实现了这两个接口。
拿压缩的情况j举例:
func gzip(src string) string { srcBuffer := bytes.NewBuffer()
gzipWriter := gzip.NewWriter([]byte(src))
gzipWriter.Close()
return srcBuffer.String()
}
以上是 读写接口 的全部内容, 来源链接: utcz.com/z/514952.html