简介
在Go语言中, 常用来处理字节操作的数据类型是字节数组[N]byte
(或者切片[]byte
)
为了更方便的处理字节操作, 我们可以将[]byte
重新定义一个类型, 比如 Bytes
type Bytes []byte
字节数组与字符串
Bytes 转 string
b := Bytes{
232, 191, 153, 230, 152, 175, 228, 184, 128, 228, 184, 170, 229, 173, 151, 231, 172, 166, 228, 184, 178}
s := string(b)
fmt.Println(s)
string 转 Bytes
s := "这是一个字符串"
b := Bytes(s)
fmt.Println(b)
字节数组与整数、浮点数
int16, uint16, int32, uint32, int64, uint64, float32, float64 转 Bytes
可以使用binary
库的Write
函数来实现对应的转化
- 我们先看
binary
库的Write
函数定义:
func Write(w io.Writer, order ByteOrder, data interface{
}) error
表明任何一个实现了 io.Writer
协议的结构体对象都可以调用该函数, 但我们的Bytes
类型默认好像没有过实现该协议
- 我们再看
io.Writer
协议:
type Writer interface {
Write(p []byte) (n