18

私の本能は、どうにかして文字列または byte[] に変換し (Go でも同じことでしょうか?)、ディスクに保存する必要があることを教えてくれます。

このパッケージ ( http://golang.org/pkg/encoding/gob/ ) を見つけましたが、構造体専用のように見えますか?

4

2 に答える 2

22

データをシリアル化するには複数の方法があり、Go はこのための多くのパッケージを提供しています。一般的なエンコード方法のパッケージ:

encoding/gob
encoding/xml
encoding/json

encoding/gobマップをうまく処理します。以下の例は、マップのエンコードとデコードの両方を示しています。

    package main

import (
    "fmt"
    "encoding/gob"
    "bytes"
)

var m = map[string]int{"one":1, "two":2, "three":3}

func main() {
    b := new(bytes.Buffer)

    e := gob.NewEncoder(b)

    // Encoding the map
    err := e.Encode(m)
    if err != nil {
        panic(err)
    }

    var decodedMap map[string]int
    d := gob.NewDecoder(b)

    // Decoding the serialized data
    err = d.Decode(&decodedMap)
    if err != nil {
        panic(err)
    }

    // Ta da! It is a map!
    fmt.Printf("%#v\n", decodedMap)
}

遊び場

于 2013-11-04T07:21:05.753 に答える