11package main
22import (
3- "bytes"
4- "fmt"
3+ "bytes"
4+ "fmt"
55)
66func main () {
7- // 这里不能写成 b := []byte{"Golang"},这里是利用类型转换。
8- b := []byte ("Golang" )
9- subslice1 := []byte ("go" )
10- subslice2 := []byte ("Go" )
11- // func Contains(b, subslice [] byte) bool
12- // 检查字节切片b ,是否包含子字节切片 subslice
13- fmt .Println (bytes .Contains (b , subslice1 ))
14- fmt .Println (bytes .Contains (b , subslice2 ))
15-
16-
17- s2 := []byte ("同学们,上午好" )
18- m := func (r rune ) rune {
19- if r == '上' {
20- r = '下'
21- }
22- return r
23- }
24- fmt .Println (string (s2 ))
25- // func Map(mapping func(r rune) rune, s []byte) []byte
26- // Map函数: 首先将 s 转化为 UTF-8编码的字符序列,
27- // 然后使用 mapping 将每个Unicode字符映射为对应的字符,
28- // 最后将结果保存在一个新的字节切片中。
29- fmt .Println (string (bytes .Map (m , s2 )))
30-
31-
32- s3 := []byte ("google" )
33- old := []byte ("o" )
34- //这里 new 是一个字节切片,不是关键字了
35- new := []byte ("oo" )
36- n := 1
37- // func Replace(s, old, new []byte, n int) []byte
38- //返回字节切片 S 的一个副本, 并且将前n个不重叠的子切片 old 替换为 new,如果n < 0 那么不限制替换的数量
39- fmt .Println (string (bytes .Replace (s3 , old , new , n )))
40- fmt .Println (string (bytes .Replace (s3 , old , new , - 1 )))
41-
42-
43- // 将字节切片 转化为对应的 UTF-8编码的字节序列,并且返回对应的 Unicode 切片。
44- s4 := []byte ("中华人民共和国" )
45- r1 := bytes .Runes (s4 )
46- // func Runes(b []byte) []rune
47- fmt .Println (string (s4 ), len (s4 )) // 字节切片的长度
48- fmt .Println (string (r1 ), len (r1 )) // rune 切片的长度
49-
50-
51- // 字节切片 的每个元素,依旧是字节切片。
52- s5 := [][]byte {
53- []byte ("你好" ),
54- []byte ("世界" ), //这里的逗号,必不可少
55- }
56- sep := []byte ("," )
57- // func Join(s [][]byte, sep []byte) []byte
58- // 用字节切片 sep 吧 s中的每个字节切片连接成一个,并且返回.
59- fmt .Println (string (bytes .Join (s5 , sep )))
7+ // 这里不能写成 b := []byte{"Golang"},这里是利用类型转换。
8+ b := []byte ("Golang" )
9+ subslice1 := []byte ("go" )
10+ subslice2 := []byte ("Go" )
11+ // func Contains(b, subslice [] byte) bool
12+ // 检查字节切片b ,是否包含子字节切片 subslice
13+ fmt .Println (bytes .Contains (b , subslice1 ))
14+ fmt .Println (bytes .Contains (b , subslice2 ))
15+
16+
17+ s2 := []byte ("同学们,上午好" )
18+ m := func (r rune ) rune {
19+ if r == '上' {
20+ r = '下'
21+ }
22+ return r
23+ }
24+ fmt .Println (string (s2 ))
25+ // func Map(mapping func(r rune) rune, s []byte) []byte
26+ // Map函数: 首先将 s 转化为 UTF-8编码的字符序列,
27+ // 然后使用 mapping 将每个Unicode字符映射为对应的字符,
28+ // 最后将结果保存在一个新的字节切片中。
29+ fmt .Println (string (bytes .Map (m , s2 )))
30+
31+
32+ s3 := []byte ("google" )
33+ old := []byte ("o" )
34+ //这里 new 是一个字节切片,不是关键字了
35+ new := []byte ("oo" )
36+ n := 1
37+ // func Replace(s, old, new []byte, n int) []byte
38+ //返回字节切片 S 的一个副本, 并且将前n个不重叠的子切片 old 替换为 new,如果n < 0 那么不限制替换的数量
39+ fmt .Println (string (bytes .Replace (s3 , old , new , n )))
40+ fmt .Println (string (bytes .Replace (s3 , old , new , - 1 )))
41+
42+
43+ // 将字节切片 转化为对应的 UTF-8编码的字节序列,并且返回对应的 Unicode 切片。
44+ s4 := []byte ("中华人民共和国" )
45+ r1 := bytes .Runes (s4 )
46+ // func Runes(b []byte) []rune
47+ fmt .Println (string (s4 ), len (s4 )) // 字节切片的长度
48+ fmt .Println (string (r1 ), len (r1 )) // rune 切片的长度
49+
50+
51+ // 字节切片 的每个元素,依旧是字节切片。
52+ s5 := [][]byte {
53+ []byte ("你好" ),
54+ []byte ("世界" ), //这里的逗号,必不可少
55+ }
56+ sep := []byte ("," )
57+ // func Join(s [][]byte, sep []byte) []byte
58+ // 用字节切片 sep 吧 s中的每个字节切片连接成一个,并且返回.
59+ fmt .Println (string (bytes .Join (s5 , sep )))
6060}
0 commit comments