Go语言核心36讲(Go语言实战与应用十九)--学习笔记

本文详细介绍了Go语言io包中的接口,包括io.Reader、io.Writer和io.Closer等核心接口,以及io.ByteReader、io.RuneReader等简单接口。文章通过接口扩展和实现类型,将接口分为读取、写入、关闭和读写位置设定四大类别,并探讨了相关接口的使用场景和典型实现,如io.CopyN函数、io.SectionReader和io.pipe。同时,文章提供了思考题,引导读者深入理解io包的工作机制。
摘要由CSDN通过智能技术生成

41 | io包中的接口和工具 (下)

上一篇文章中,我主要讲到了io.Reader的扩展接口和实现类型。当然,io代码包中的核心接口不止io.Reader一个。

我们基于它引出的一条主线,只是io包类型体系中的一部分。我们很有必要再从另一个角度去探索一下,以求对io包有更加全面的了解。

下面的一个问题就与此有关。

知识扩展问题:

io包中的接口都有哪些?它们之间都有着怎样的关系?

我们可以把没有嵌入其他接口并且只定义了一个方法的接口叫做简单接口。在io包中,这样的接口一共有 11 个。

在它们之中,有的接口有着众多的扩展接口和实现类型,我们可以称之为核心接口io包中的核心接口只有 3 个,它们是:io.Reader、io.Writer和io.Closer。

我们还可以把io包中的简单接口分为四大类。这四大类接口分别针对于四种操作,即:读取、写入、关闭和读写位置设定。前三种操作属于基本的 I/O 操作。

关于读取操作,我们在前面已经重点讨论过核心接口io.Reader。它在io包中有 5 个扩展接口,并有 6 个实现类型。除了它,这个包中针对读取操作的接口还有不少。我们下面就来梳理一下。

首先来看io.ByteReader和io.RuneReader这两个简单接口。它们分别定义了一个读取方法,即:ReadByte和ReadRune。

但与io.Reader接口中Read方法不同的是,这两个读取方法分别只能够读取下一个单一的字节和 Unicode 字符。

我们之

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值