golang bytes包解读

2023-05-11,,

golang中的bytes标准库实现了对字节数组的各种操作,与strings标准库功能基本类似。

功能列表:
1、字节切片 处理函数
(1)、基本处理函数
(2)、字节切片比较函数
(3)、前后缀检查函数
(4)、字节切片位置索引函数
(5)、分割函数
(6)、大小写处理函数
(7)、子字节切片处理函数
2、Buffer 对象
3、Reader 对象

基本处理函数
Contains() :返回是否包含子切片
func Contains(b, subslice []byte) bool

案例:
执行结果:
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  go build strconv.go
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  ./strconv
false
true
true
false

Count():计算子字节切片在字节切片中的重叠数量
func Count(s, sep []byte) int

案例:

执行结果:
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  go build strconv.go
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  ./strconv
1
2
2
1

Map():首先将字节切片转化为 UTF-8编码的字符序列,然后使用 mapping 将每个Unicode字符映射为对应的字符,最后将结果保存在一个新的字节切片中。
func Map(mapping func(r rune) rune, s []byte) []byte

案例:

执行结果:
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  ./strconv
你好,我是杨国强!
你好,我叫杨国强!

Repeat():将切片复制count个,返回新的切片
func Repeat(b []byte, count int) []byte
案例:

执行结果:
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  go build strconv.go
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  ./strconv
googlegooglegooglegooglegoogle

Replace():返回字节切片 S 的一个副本, 并且将前n个不重叠的子切片 old 替换为 new,如果n < 0 那么不限制替换的数量
func Replace(s, old, new []byte, n int) []byte
案例:

执行结果:
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  go build strconv.go
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  ./strconv
gcvicvigle
gcvicvigle
gcviogle
gcvicvigle
解释:其中s为要替换的字节切片,old为被替换的字节切片,new为要替换的字节切片,n为替换几个匹配字节切片,一旦超过最大被替换字节切片,则新的字节切片不再增加。

Runes()将 S 转化为对应的 UTF-8 编码的字节序列,并且返回对应的Unicode 切片
func Runes(b []byte) []rune
案例:

注:
1、每个 rune 变量占据 4个字节,等价于 int32
2、每个 byte 变量占据1个字节,等价于int8
执行结果:
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  go build strconv.go
sf@SFdeMacBook-Pro  ~/Documents/project/src/test  ./strconv
××× 21
××× 7

《golang bytes包解读.doc》

下载本文的Word格式文档,以方便收藏与打印。