字节
1字节=8bit (8个二进制位)
字符
1个ASCII字符占了1个字节
1个Unicode字符占了2个字节
1个utf-8字符占了3个字节
1个golang字符(rune)占了4个字节
字符就是用于展示信息的一种符号,比如中文,韩文,英语及特殊符号。
编码
go语言采用utf-8编码方式,支持的字符较丰富,
ss := “ j” 表示一个字符串,其类型为 string
ss2 := 'j' 表示一个字符,其类型为rune(int32的别名)
为什么是32,3个字节不是24吗?这是因为rune 一个字节是标识符,其余三个字节表示字符
直接上代码
package main
import "fmt"
func main() {
// rune类型
a := 's'
// 转换为字符串类型
a1 := string(a)
// 本身就是rune类型
b := rune(a)
// 转换为字符串类型
c := string(b)
// 打印变量类型和值
fmt.Printf("%T %#v\n", a, a)
fmt.Printf("%T %#v\n", b, b)
fmt.Printf("%T %#v\n", c, c)
fmt.Printf("%T %#v\n", a1, a1)
// 判断值是否相同
fmt.Println(a1 == c)
// 打印变量内存地址
fmt.Println(&a1)
fmt.Println(&c)
/*int32 115
int32 115
string "s"
string "s"
true
0xc0000361f0
0xc000036200
*/
}