Go语言string和byte以及rune

发布时间 2023-04-17 23:58:40作者: 博客是个啥?

Go语言string和byte以及rune

go语言中,byte其实是utint8的别名,一个字节;rune是int32的别名,4个字节

一个字节可以表示ASCii中的所有,但是要表示unicode中的别的内容,就得用多个字节了,所以用rune来表示。

那么string和这俩有啥关系呢

用下标访问string

当你用len()求string的时候,返回你的是字节的个数

比如len("asd余余余"),返回12, asd各一个字节,余余余各三个字节。

当你用下标访问的时候呢,返回的是uint8,也就是byte

当使用range遍历string

当你使用range遍历string的时候,它是按一个个字符返回的,不是按字节返回的

for _,v := range "asd" {
    fmt.Println(reflect.TypeOf(v))
}

打印的结果是

int32

int32

int32