温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

golang bytes包解读

发布时间:2020-07-06 17:49:42 来源:网络 阅读:2558 作者:IT职场小白 栏目:开发技术

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

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

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

案例:golang bytes包解读
执行结果:
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

案例:
golang bytes包解读
执行结果:
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

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

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

执行结果:
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
案例:
golang bytes包解读
执行结果:
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
案例:
golang bytes包解读
注:
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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI