1 回答

TA貢獻1834條經驗 獲得超8個贊
深入研究代碼似乎即使它說 interface{} 它實際上將所有內容壓縮為 []byte
https://github.com/astaxie/beego/blob/master/cache/memcache/memcache.go#L77
當它Get把一切都轉換成string
https://github.com/astaxie/beego/blob/master/cache/memcache/memcache.go#L61
所以你需要自己編組/解組數據結構。
請參閱此示例并使用提供的假人替換您的調用和錯誤檢查:
http://play.golang.org/p/9z3KcOlgAx
package main
import (
"bytes"
"encoding/json"
"log"
)
var cache map[string]string = make(map[string]string)
func Put(key, value string) {
cache[key] = value
}
func Get(key string) string {
return cache[key]
}
func main() {
m := map[string]string{
"A": "1",
"B": "2",
}
if b, err := json.Marshal(m); err != nil {
log.Fatal(err)
} else {
Put("myKey", string(b))
}
b := bytes.NewBufferString(Get("myKey"))
var mm map[string]string
if err := json.Unmarshal(b.Bytes(), &mm); err != nil {
log.Fatal(err)
}
log.Printf("%#v", mm)
}
- 1 回答
- 0 關注
- 191 瀏覽
添加回答
舉報