map[interface {}]interface {}
map[string]string

我还需要从数据生成键列表,因为这些键事先未知。

mfmt.Println(m)map[k0:v0 K1:v1 k2:v2 ... ]

我该怎么办fmt.Println可以做什么?

最佳答案

处理未知接口的安全方法,只需使用fmt.Sprintf()

package main

import (
    "fmt"
)

func main() {

    mapInterface := make(map[interface{}]interface{})   
    mapString := make(map[string]string)

    mapInterface["k1"] = 1
    mapInterface[3] = "hello"
    mapInterface["world"] = 1.05

    for key, value := range mapInterface {
        strKey := fmt.Sprintf("%v", key)
        strValue := fmt.Sprintf("%v", value)

        mapString[strKey] = strValue
    }

    fmt.Printf("%#v", mapString)
}