Go 语言标准库 bytes ,实现了对字节数组的各种操作。 It is analogous to the facilities of strings package. (它和string 标准包提供的功能类似)
提供的功能如下;
- 字节切片 处理函数
- 基本处理函数
- 字节切片比较函数
- 前后缀检查函数
- 字节切片位置索引函数
- 分割函数
- 大小写处理函数
- 子字节切片处理函数
Buffer
对象Reader
对象
字节切片处理函数
基本处理函数 共七个
- Contains() 返回是否包含子切片
- Count() 子切片非重叠实例的数量
- Map() 函数,将byte 转化为Unicode,然后进行替换
- Repeat() 将切片复制count此,返回这个新的切片
- Replace() 将切片中的一部分 替换为另外的一部分
- Runes() 将 S 转化为对应的 UTF-8 编码的字节序列,并且返回对应的Unicode 切片
- Join() 函数,将子字节切片连接到一起。
func Contains(b, subslice []byte) bool
func Contains(b, subslice [] byte) bool
检查字节切片 b ,是否包含子字节切片 subslice
package main
import (
"bytes"
"fmt"
)
func main() {
// 这里不能写成 b := []byte{"Golang"},这里是利用类型转换。
b := []byte("Golang")
subslice1 := []byte("go")
subslice2 := []byte("Go")
fmt.Println(bytes.Contains(b, subslice1))
fmt.Println(bytes.Contains(b, subslice2))
}
Counts(s, spe[ []byte) int
func Count(s, sep []byte) int
计算子字节切片 sep 在字节切片 s 中出现的非重叠实例的数量。
package main
import (
"bytes"
"fmt"
)
func main() {
s := []byte("banana")
sep1 := []byte("ban")
sep2 := []byte("na")
sep3 := []byte("a")
fmt.Println(bytes.Count(s, sep1))
fmt.Println(bytes.Count(s, sep2))
fmt.Println(bytes.Count(s, sep3))
}
func Map(mapping func(r rune) rune, s []byte) []byte
Map函数:首先将 s 转化为 UTF-8编码的字符序列,然后使用 mapping 将每个Unicode字符映射为对应的字符,最后将结果保存在一个新的字节切片中。
package main
import (
"bytes"
"fmt"
)
func main() {
s := []