教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 读写接口

读写接口

发布时间:2022-01-27   编辑:jiaochengji.com
教程集为您提供读写接口等资源,欢迎您收藏本站,我们将为您提供最新的读写接口资源

针对一些输入/输出的场景,一般可能会涉及到读/写操作。比如,对一段字符串进行<code>gzip</code>压缩,或者解压缩,<code>golang</code>下主要通过两个接口来实现:

读的接口声明如下:

<pre><code>type Reader interface { Read(p []byte) (n int, err error) } </code></pre>

写接口声明如下:

<pre><code>type Writer interface { Write(p []byte) (n int, err error) } </code></pre>

结合<code>compress/gzip</code>包,我们来了解一下这两个接口。<code>gzip</code>中包括两个功能:压缩和解压缩。

解压缩的情况,<code>gzip</code>提供了<code>gzip.Reader</code>对象,用来从压缩的内容中读区被压缩前的原始内容。对象的创建函数如下:

<pre><code>func NewReader(r io.Reader) (*Reader, error) </code></pre>

压缩的情况也类似:

<pre><code>func NewWriter(w io.Writer) *Writer </code></pre>

对一个被<code>gzip</code>压缩的字符串,该如何转换为<code>io.Reader</code>/<code>io.Writer</code>呢? <code>bytes</code>包提供了<code>Buffer</code>对象,就实现了这两个接口。

拿压缩的情况j举例:

<pre><code>func gzip(src string) string { srcBuffer := bytes.NewBuffer() gzipWriter := gzip.NewWriter([]byte(src)) gzipWriter.Close() return srcBuffer.String() } </code></pre>
到此这篇关于“读写接口”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
python3有serial库吗
C# Winform 操作 INI 配置文件的实现代码
读写接口
c# Winform 操作INI配置文件的代码
PHP抽象类和接口示例和区别
JAVA程序员必读:基础篇(8)
Go指南10-谈谈对Golang IO读写的困惑
【golang基础】socks编程相关的知识点
php如何按需加载方式来增加程序的灵活度
javascript编程基础(9)-Document文档对象

[关闭]
~ ~