ホームページ >バックエンド開発 >Golang >構造体をバイト golang に変換する

構造体をバイト golang に変換する

WBOY
WBOYオリジナル
2023-05-14 21:51:381058ブラウズ

Go 言語では、構造体 (struct) は非常に一般的な型であり、複数のフィールドで構成されます。場合によっては、構造体をバイト配列に変換したり、バイト配列を構造体に変換したりする必要があります。現時点では、Go 言語で提供されているいくつかの関数を使用して変換を実行できます。

  1. 構造体をバイト配列に変換する

構造体をバイト配列に変換するには、次のメソッドを使用できます。

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]
}

In 上記のコードでは、 binary.Write 関数を使用して構造体 User をバイト配列に変換します。ここで、buf 変数は書き込まれるバッファーです。

  1. バイト配列を構造体に変換する

バイト配列を構造体に変換するには、次のメソッドを使用できます。

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}
}

In 上記のコードでは、 binary.Read 関数を使用して、バイト配列を構造体 User に変換します。ここで、buf 変数は読み取りバッファーです。

概要

Go 言語では、encoding/binary パッケージの関数を使用することで、構造をバイト配列または単語に簡単に変換できます。 Convert セクション配列から構造体へ。この変換は、Web 上でプログラミングする場合や他のプログラミング言語と対話する場合に役立ち、構造化データをより効率的に処理できるようになります。

以上が構造体をバイト golang に変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。