구조체와 바이트 배열 사이의 Go 변환
Q: Go에서 구조체와 바이트 배열 사이에 C와 유사한 유형 캐스팅을 어떻게 수행할 수 있나요? 예를 들어, 수신된 네트워크 바이트 스트림을 구조체에 직접 매핑하려면 어떻게 해야 합니까?
A: 인코딩/바이너리 패키지는 unsafe.Pointer:
<code class="go">// Create a struct and write it. type T struct { A uint32 B float64 } t := T{A: 0xEEFFEEFF, B: 3.14} buf := &bytes.Buffer{} err := binary.Write(buf, binary.BigEndian, t) if err != nil { panic(err) } fmt.Println(buf.Bytes()) // Read into an empty struct. t = T{} err = binary.Read(buf, binary.BigEndian, &t) if err != nil { panic(err) } fmt.Printf("%x %f", t.A, t.B)</code>
위 내용은 Go에서 구조체를 바이트 배열로 변환하고 그 반대로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!