當我嘗試使用以下代碼段將對象轉換為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 關注
- 260 瀏覽
添加回答
舉報
0/150
提交
取消
