bufio.go 源码分析
bufio 包是 Go 标准库中提供缓冲 I/O 功能的模块,bufio.go 是其核心实现文件。下面我将对其主要结构和功能进行分析。
1. 核心数据结构
Reader 结构
type Reader struct {
buf []byte
rd io.Reader // reader provided by the client
r, w int // buf read and write positions
err error
lastByte int // last byte read for UnreadByte
lastRuneSize int // size of last rune read for UnreadRune
}
buf: 缓冲区rd: 底层读取器r: 读取位置指针w: 写入位置指针err: 存储错误lastByte,lastRuneSize: 用于支持回退操作
Writer 结构
type Writer struct {
err error
buf []byte
n int
wr io.Writer
}
buf: 缓冲区wr: 底层写入器n: 缓冲区中已写入的字节数err: 存储错误
ReadWriter 结构
type ReadWriter struct {
*Reader
*Writer
}
组合了 Reader 和 Writer,提供双向缓冲功能。
2. 核心方法分析
Reader 方法
初始化
func NewReaderSize(rd io<

最低0.47元/天 解锁文章
5万+

被折叠的 条评论
为什么被折叠?



