4

エンコーダーmap[mapKey]stringを使用してタイプのマップをファイルに保存しようとすると、文字列がファイルに保存されません。gob

mapKeyこれが構造体であり、マップ値は長いjson文字列です。

type mapKey struct{
    Id1 string
    Id2 string
}

そして、次のような構造体の代わりにネストされたマップを使用するときはいつでも:

var m = make(map[string]map[string]string)

正常に動作し、文字列を適切に保存しています。ここで何が欠けているのかわかりません。

エンコード、デコードしてファイルに保存するコード:

func Save(path string, object interface{}) error {
    file, err := os.Create(path)
    if err == nil {
        encoder := gob.NewEncoder(file)
        encoder.Encode(object)
    }
    file.Close()
    return err
}

// Decode Gob file
func Load(path string, object interface{}) error {
    file, err := os.Open(path)
    if err == nil {
        decoder := gob.NewDecoder(file)
        err = decoder.Decode(object)
    }
    file.Close()
    return err
}

func Check(e error) {
    if e != nil {
        _, file, line, _ := runtime.Caller(1)
        fmt.Println(line, "\t", file, "\n", e)
        os.Exit(1)
    }
}
4

1 に答える 1