uint8 unsigned 8-bit integers (0 to 255)
type byte = uint8
type rune = int32
b := []byte{'h', 104, 101} //注意单引号
u8 := []uint8{'h', 104, 101}
fmt.Printf("%T %T\n", b, u8) //[]uint8 []uint8
fmt.Println(string(b), string(u8)) // hhe hhe
str2 := "hello中国"
data2 := []byte(str2) //类型转换
fmt.Println(data2) //[104 101 108 108 111 228 184 173 229 155 189]
str2 = string(data2)
fmt.Println(str2) //hello中国
//int8取值范围为:-128~127
var r byte
var v int8
v = -70
r = byte(v) //等价于:v<0 256+v;v>0 v
fmt.Println("int8->byte: ", r)
//类似的如下
var int32_1 int32 = -1
fmt.Printf("%d,%.f", uint32(int32_1), math.Exp2(32)) //4294967295,4294967296
// rune 与 byte
rs := []rune{'H', 'e', 'l', 'l', 'o', ' ', '世', '界'}
bs := []byte(string(rs))
fmt.Printf("%s", bs)
fmt.Println(string(bs))
rs=[]rune("Hello 世界")
bs=[]byte(string(rs))
fmt.Printf("%s", bs)
fmt.Println(string(bs))
// uint8 与 byte
intBs:=[]uint8(bs)
fmt.Println(intBs,string(intBs))