golang bytes包解读

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

转载于:https://blog.51cto.com/jiekeyang/2178838

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值