字符 byte 和 rune类型介绍
golang中用单引号 ' 定义字符 类型属于 int
var a = 'a'
fmt.Printf("%v %T",a,a)
fmt.Printf("%c %T",a,a)
定义一个字符串输出里面的字符
var b = "this"
fmt.Printf("%v %c %T",b[2],b[2],b[2])
一个汉字占 3 个字节utf-8编码 一个字母占用 1 个字节 ASCII码
unsafe.Sizeof() 不能查看string类型的占用的存储空间 用len()
var b = "this"
fmt.Println(len(b))
b = "你好hello"
fmt.Println(len(b))
var c = '国'
fmt.Printf("%v %c %T\n",c,c,c)
byte类型
var m = "hello world"
for i := 0; i < len(m); i++ {
fmt.Printf("%v(%c) ",m[i],m[i])
}
rune 类型
var n = "你好好 我的world"
for _, v := range n {
fmt.Printf("%v(%c) ",v,v)
}
修改字符
var s = "big"
var byteStr = []byte(s)
byteStr[0] = 's'
fmt.Println(string(byteStr))
s = "你好的 world"
var runeStr = []rune(s)
runeStr[0] = '我'
fmt.Println(string(runeStr))