Go 언어에서 구조(struct)는 여러 필드로 구성된 매우 일반적인 유형입니다. 어떤 경우에는 구조를 바이트 배열로 변환하거나 바이트 배열을 구조로 변환해야 합니다. 이때 Go 언어에서 제공하는 일부 기능을 사용하여 변환을 수행할 수 있습니다.
구조를 바이트 배열로 변환하려면 다음 방법을 사용할 수 있습니다.
package main import ( "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
변수는 기록될 버퍼입니다. binary.Write
函数将结构体User
转换为字节数组,其中buf
变量为写入的缓冲区。
要将字节数组转换为结构体,我们可以使用以下方法:
package main import ( "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
变量为读取的缓冲区。
总结
在Go语言中,通过使用encoding/binary
binary.Read를 사용했습니다. code> 함수는 바이트 배열을 <code>User
구조로 변환합니다. 여기서 buf
변수는 읽기 버퍼입니다. 🎜🎜요약🎜🎜Go 언어에서는 encoding/binary
패키지의 함수를 사용하여 쉽게 구조를 바이트 배열로 변환하거나 바이트 배열을 구조로 변환할 수 있습니다. 이 변환은 웹에서 프로그래밍하거나 다른 프로그래밍 언어와 상호 작용할 때 유용하므로 구조화된 데이터를 보다 효율적으로 처리할 수 있습니다. 🎜
위 내용은 구조체를 바이트 golang으로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!