本次主要介绍golang中的标准库bytes,基本上参考了 字节 | bytes 、Golang标准库——bytes 文章。
bytes库主要包含 5 大部分,即:
我们依次学习上面的 5 大部分。
1、常量
bytes.MinRead 是一个常量,表示在使用 ReadFrom 方法从 io.Reader 中读取数据时,每次读取的最小字节数。如果 io.Reader 的 Read 方法返回的字节数小于 bytes.MinRead,ReadFrom 方法会尝试再次读取,直到读取的字节数达到 bytes.MinRead 或者 io.EOF。这个常量的值为 512。
对上面解释不太清楚的同学,可以去看看源码,然后再看一看 func (b *Buffer) ReadFrom(r io.Reader) (n int64, err error) 这个方法就能够理解了。
2、变量
- // ErrTooLarge is passed to panic if memory cannot be allocated to store data in a buffer.
- var ErrTooLarge = errors.New("bytes.Buffer: too large")
复制代码 bytes.ErrTooLarge 是 Go 语言标准库中 bytes 包的一个错误变量,表示在执行某些操作时,输入的数据过大,超出了 bytes 包所能处理的范围。
具体来说,当使用 bytes.Buffer 类型的 Write 方法写入数据时,如果写入的数据长度超过了缓冲区的容量,就会返回 bytes.ErrTooLarge 错误。类似地,当使用 bytes.Reader 类型的 Read 方法读取数据时,如果要读取的数据长度超过了缓冲区的长度,也会返回 bytes.ErrTooLarge 错误。
bytes.ErrTooLarge 的作用是提醒开发者注意输入数据的大小,避免因为数据过大而导致程序崩溃或者出现其他问题。
3、函数
3.1 func Compare
函数定义:- func Compare(a, b []byte) int
复制代码 <blockquote>
Compare函数返回一个整数表示两个[]byte切片按字典序比较的结果。如果a==b返回0;如果a |