声明递归/多维地图

时间:2015-04-14 21:49:00

标签: go

type Table struct {
    input map[string]map[string]
}

如何声明多维或递归地图?

input["var1"]["var2"] = "something"

更新

type Table struct {
    input map[map[string]]
}

返回错误

 syntax error: unexpected ]

1 个答案:

答案 0 :(得分:9)

您正在寻找map[string]map[string]string。您的示例的问题是它缺少内部映射中值的类型。这是一个如何初始化这种结构的例子;

m := map[string]map[string]string{
        "a": map[string]string{
            "1":"A",
            "2": "B",
        },
        "b": map[string]string{
            "1": "C",
            "2": "D",
        },
    }

或者按照你的例子;

func main() {
        m := map[string]map[string]string{}
        m["var1"] = map[string]string{}
        m["var1"]["var2"] = "something"
        fmt.Println(m["var1"]["var2"])
}

打印出来的东西。