ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] byte 就是字节的意思,一个字节就是8个二进制位。uint8,无符号整型,占8位。正好也是2的8次方。所以 byte 和 uint8 类型本质上没有区别,他表示的是 ASCII 表中的一个字符。 ```go // byte类型 var b1 byte b1 = 'A' fmt.Printf("b1 type is: %T\n", b1) fmt.Printf("%c\n", b1) // ASCII码表对应的字符 fmt.Printf("%d\n", b1) // ASCII数字 fmt.Println(b1) // ASCII数字 // uint8类型 var b2 uint8 b2 = 65 fmt.Printf("b2 type is: %T\n", b2) fmt.Printf("%c\n", b2) // ASCII码表对应的字符 fmt.Printf("%d\n", b2) // ASCII数字 fmt.Println(b2) // ASCII数字 var b3 rune b3 = '曾' // rune,占用4个字节,共32位比特位。所以它和int32本质上也没有区别。 // 它表示的是一个Unicode字符 fmt.Printf("b3: %v, b3 type is: %T\n", b3, b3) // 运行结果: // b1 type is: uint8 // A // 65 // 65 // b2 type is: uint8 // A // 65 // 65 // b3: 26366, b3 type is: int32 ``` ## rune 与 byte 区别 1. byte对应的是uint8,一个字节,存储ASCII表里面的字符 2. rune对应的是int32,四个字节,存储Unicode码表里面的字符