40 | io包中的接口和工具 (上)

我们在前几篇文章中,主要讨论了strings.Builder、strings.Reader和bytes.Buffer这三个数据类型。

知识回顾

还记得吗?当时还问过“它们都实现了哪些接口”。在我们继续讲解io包中的接口和工具之前,先来解答一下这个问题。

strings.Builder类型主要用于构建字符串,它的指针类型实现的接口有io.Writer、io.ByteWriter和fmt.Stringer。另外,它其实还实现了一个io包的包级私有接口io.stringWriter(自 Go 1.12 起它会更名为io.StringWriter)。

strings.Reader类型主要用于读取字符串,它的指针类型实现的接口比较多,包括:

1. io.Reader;

2. io.ReaderAt;

3. io.ByteReader;

4. io.RuneReader;

5. io.Seeker;

6. io.ByteScanner;

7. io.RuneScanner;

8. io.WriterTo;

共有 8 个,它们都是io包中的接口。其中,io.ByteScanner是io.ByteReader的扩展接口,而io.RuneScanner又是io.RuneReader的扩展接口。

bytes.Buffer是集读、写功能于一身的数据类型,它非常适合作为字节序列的缓冲区。 它的指针类型实现的接口就更多了。

更具体地说,该指针类型实现的读取相关的接口有下面几个。

1. io.Reader;

2. io.ByteReader;

3. io.RuneReader;

4. io.ByteScanner;

5. io.RuneScanner;

6. io.WriterTo;

共有 6 个。而其实现的写入相关的接口则有这些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值