go标准库-Bytes
go语言中文网有很多文档缺少内容比如string.Builder就没有,godoc绝对详尽,推荐阅读godoc
bytes包实现了操作[]byte的常用函数
常用函数
strings中具有的函数bytes里面基本都有
- func Compare(a, b []byte) int:1,0,-1
- func Equal(a, b []byte) bool:判断两个切片的内容是否完全相同
- func EqualFold(s, t []byte) bool:判断两个utf-8编码切片(将unicode大写、小写、标题三种格式字符视为相同)是否相同
- func Runes(s []byte) []rune: 返回和s等价的[]rune切片
- func TrimSpace(s []byte) []byte:后端所有空白(unicode.IsSpace指定)都去掉的子切片
- func Fields(s []byte) [][]byte:返回将字符串按照空白(unicode.IsSpace确定,可以是一到多个连续的空白字符)分割的多个子切片
- func Split(s, sep []byte) [][]byte:用去掉s中出现的sep的方式进行分割,会分割到结尾,并返回生成的所有[]byte切片组成的切片(每一个sep都会进行一次切割,即使两个sep相邻,也会进行两次切割)
- func Join(s [][]byte, sep []byte) []byte: 将一系列
[]byte
切片连接为一个[]byte
切片,之间用sep来分隔,返回生成的新切片
type Buffer struct
常用函数
- func NewBuffer(buf []byte) *Buffer:NewBuffer使用buf作为初始内容创建并初始化一个Buffer。
- func NewBufferString(s string) *Buffer:NewBuffer使用s作为初始内容创建并初始化一个Buffer。
常用方法
-
func (b *Buffer) Reset():Reset重设缓冲
-
func (b *Buffer) Len() int:返回缓冲中未读取部分的字节长度
-
func (b *Buffer) Bytes() []byte:返回未读取部分字节数据的切片
-
func (b *Buffer) String() string:将未读取部分的字节数据作为字符串返回
-
func (b *Buffer) Read(p []byte) (n int, err error):从缓冲中读取数据直到缓冲中没有数据或者读取了len(p)字节数据,将读取的数据写入p
-
func (b *Buffer) ReadByte() (c byte, err error):读取并返回缓冲中的下一个字节
-
func (b *Buffer) ReadRune() (r rune, size int, err error):ReadRune读取并返回缓冲中的下一个utf-8码值
-
func (b *Buffer) ReadBytes(delim byte) (line []byte, err error):ReadBytes读取直到第一次遇到delim字节,返回一个包含已读取的数据和delim字节的切片
-
func (b *Buffer) ReadString(delim byte) (line string, err error):ReadString读取直到第一次遇到delim字节,返回一个包含已读取的数据和delim字节的字符串
-
func (b *Buffer) Write(p []byte) (n int, err error):Write将p的内容写入缓冲中,如必要会增加缓冲容量
-
func (b *Buffer) WriteString(s string) (n int, err error):Write将s的内容写入缓冲中,如必要会增加缓冲容量