我的直觉告诉我,它必须以某种方式转换为字符串或字节 [](在 Go 中甚至可能是相同的东西?),然后保存到磁盘。
我找到了这个包(http://golang.org/pkg/encoding/gob/),但它似乎只适用于结构?
我的直觉告诉我,它必须以某种方式转换为字符串或字节 [](在 Go 中甚至可能是相同的东西?),然后保存到磁盘。
我找到了这个包(http://golang.org/pkg/encoding/gob/),但它似乎只适用于结构?
序列化数据有多种方式,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)
}
gob 包可以让你序列化地图。我写了一个小例子http://play.golang.org/p/6dX5SMdVtr演示了编码和解码映射。请注意,gob 包不能对所有内容进行编码,例如通道。
编辑:字符串和 []byte 在 Go 中也不相同。