struct转换byte golang
时间:2023-05-15 06:24
在Go语言中,结构体(struct)是一种非常常见的类型,它由多个字段组成。在某些情况下,我们需要将结构体转换为字节数组,或者将字节数组转换为结构体。这时候,我们可以使用Go语言中提供的一些函数来进行转换。 要将结构体转换为字节数组,我们可以使用以下方法: 在上述代码中,我们使用了 要将字节数组转换为结构体,我们可以使用以下方法: 在上述代码中,我们使用了 总结 在Go语言中,通过使用 以上就是struct转换byte golang的详细内容,更多请关注Gxl网其它相关文章!package mainimport ( "bytes" "encoding/binary" "fmt")type User struct { Name string Age int}func main() { user := User{Name: "张三", Age: 18} buf := new(bytes.Buffer) err := binary.Write(buf, binary.BigEndian, user) if err != nil { fmt.Println("write error:", err) return } fmt.Println(buf.Bytes()) // [0 0 0 6 232 173 153 229 156 168 0 18]}
binary.Write
函数将结构体User
转换为字节数组,其中buf
变量为写入的缓冲区。package mainimport ( "bytes" "encoding/binary" "fmt")type User struct { Name string Age int}func main() { data := []byte{0, 0, 0, 6, 232, 173, 153, 229, 156, 168, 0, 18} user := User{} buf := bytes.NewReader(data) err := binary.Read(buf, binary.BigEndian, &user) if err != nil { fmt.Println("read error:", err) return } fmt.Println(user) // {张三 18}}
binary.Read
函数将字节数组转换为结构体User
,其中buf
变量为读取的缓冲区。encoding/binary
包中的函数,我们可以方便地将结构体转换为字节数组,或将字节数组转换为结构体。这种转换在网络编程或与其他编程语言进行交互时非常有用,可以让我们更高效地处理结构化数据。