编码:https://blog.csdn.net/Deft_MKJing/article/details/79460485
go语言没有char。
1. byte
- uint8,处理ASCII或UTF-8编码的字节,string的单个字符是byte,还可以存储二进制数据,但不是处理二进制数据,处理二进制数据需要binary包。
- UTF-8是1-4字节变长字符,UTF-8是Unicode的一种实现。
- 类型转换
[]byte
是一个字节切片(slice of bytes)。它是一个动态数组,用于存储字节(byte)类型的元素。在Go中,byte是uint8的别名,它是一个无符号的8位整数,取值范围是0~255。
ss := []byte(s) // 类型转换,将字符串s转换成一个字节切片[]byte。因为字符串string在Go中是以不可变的,而字节切片则提供了对这些字节的可变访问。var a string
a[n] // 返回byte类型,因为string底层是字节数组
2. rune
- rune:int32 ,处理所有Unicode字符。
3. string
- 不可变类型
- 底层是[]byte
- string的长度len(string)是string转为[]byte后字节数组里元素的个数,而不是表面的字符个数。例如,汉字对应3个byte。
- string可以和[]byte,也可以和[]rune相互转换。
- 格式化字符串
message := fmt.Sprintf("Hello, my name is %s and I am %d years old.", name, age)
- 字符串操作
strings
是一个标准库包,提供了用于操作字符串的函数。这个包包含了许多实用的功能,比如查找子字符串、分割字符串、连接字符串、去除空格、转换大小写等。
strings.Join(elems []string, sep string) string // 连接字符串names := []string{"Alice", "Bob", "Charlie"}
joined := strings.Join(names, ", ") // 结果:Alice, Bob, Charlie