当我尝试使用以下代码段将对象转换为golang时,我收到错误。map[string]stringmap[string]interface{}package mainimport "fmt"func main() { var m = make(map[string]string) m["a"] = "b" m1 := map[string]interface{}(m) fmt.Println(m1)}我收到这样的错误:# example./prog.go:10:30: cannot convert m (type map[string]string) to type map[string]interface {}我能够使用以下代码使用长for循环解决方案来转换它,但我想知道是否有任何更简单的方法。package mainimport ( "fmt")func main() { m := map[string]string{ "a": "a", "b": "b", } m2 := make(map[string]interface{}, len(m)) for k, v := range m { m2[k] = v } fmt.Println(m2) }
2 回答
慕雪6442864
TA贡献1812条经验 获得超5个赞
您可以通过 JSON 对其进行往返:
package main
import (
"bytes"
"encoding/json"
"fmt"
)
func transcode(in, out interface{}) {
buf := new(bytes.Buffer)
json.NewEncoder(buf).Encode(in)
json.NewDecoder(buf).Decode(out)
}
func main() {
m := map[string]string{"a": "b"}
n := make(map[string]interface{})
transcode(m, &n)
fmt.Println(n) // map[a:b]
}
https://golang.org/pkg/encoding/json
- 2 回答
- 0 关注
- 164 浏览
添加回答
举报
0/150
提交
取消