簡體   English   中英

gob:未注冊接口的類型:map [string] interface {}

[英]gob: type not registered for interface: map[string]interface {}

gob無法編碼map[string]interface{}

gob: type not registered for interface: map[string]interface {}

http://play.golang.org/p/Si4hd8I0JE

package main

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

func CloneObject(a, b interface{}) []byte {
    buff := new(bytes.Buffer)
    enc := gob.NewEncoder(buff)
    dec := gob.NewDecoder(buff)
    err := enc.Encode(a)
    if err != nil {
        log.Panic("e1: ", err)
    }
    b1 := buff.Bytes()
    err = dec.Decode(b)
    if err != nil {
        log.Panic("e2: ", err)
    }
    return b1
}

func main() {
    var a interface{}
    a = map[string]interface{}{"X": 1}
    b2, err := json.Marshal(&a)
    fmt.Println(string(b2), err)

    var b interface{}
    b1 := CloneObject(&a, &b)
    fmt.Println(string(b1))
}

是否有可能在gob中編碼map[string]interface{} 我能用JSON編碼它

gob.Register(map[string]interface{}{})

http://play.golang.org/p/Dd3IzJgl0A

可能是的,但您必須事先注冊您的類型。 請參閱http://golang.org/pkg/encoding/gob/#Register

詳細信息記錄在http://golang.org/pkg/encoding/gob/#hdr-Encoding_Details中

(它確實有助於查看Go文檔:-)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM