string 就是多个字符按顺序拼接的,每个字符一个数字。
能转换成 []byte、[]uint32、[]uint64(字符转换成数字的时候,使用 byte或uint8 就够了,所以一般不会使用 []int32 []int64)
可以理解成,字符串就是按切片方式拆分成数组,每个字符就是一个元素。相互之间可以转换:
s := "abc" c := []byte(s) //转成切片 s2 := string(c) //转成字符串
一个字符对应的是一个数字,比如:abc = 97 98 99
string 转换之后,变成字符串显示。
这个特点被用来修改字符串:
s := "abc" c := []byte(s) //转成切片 c[0] = 'e' //跟换第0个位置的字符 s2 := string(c) //转成字符串
涉及到单引号问题:
golang 里面字符串使用双引号(非原样输出)或反引号(原样输出,不转义),但是如果使用单引号来标示字符,将得到这个字符的“utf-8编码的值”
所以在上面 c[0] = 'e' 修改字符的时候,使用单引号。
双引号、反引号、单引号的区别例子:
var string a = "你好" fmt.Println(a) 会输出你好 //输出转义后的字符串 var string b = `不好\n` 则会输出 不好\n //原样输出 var rune c = '你' //会输出你的utf-8编码的值