是否可以声明具有键值对的地图?
像这样的东西
var env map[string]int{
"key0": 10,
"key1": 398
}
答案 0 :(得分:3)
是的,您可以声明具有名称值对的地图。您可以将variable declaration与map composite literal:
一起使用var env = map[string]int{
"key0": 10,
"key1": 398,
}
或带有复合文字的short variable declaration:
env := map[string]int{
"key0": 10,
"key1": 398,
}
短变量声明只能在函数中使用。变量声明可以在函数和包级别使用。
另请注意添加的","继398之后。
答案 1 :(得分:2)
确实如此,但您需要添加额外的“,
”,在您的情况下,需要添加=
(var env = map...
)。
以下是“Go maps in action”的示例:
commits := map[string]int{
"rsc": 3711,
"r": 2138,
"gri": 1908,
"adg": 912,
}
没有最后的',',你得到:
syntax error: need trailing comma before newline in composite literal
注意Go 1.5(2015年8月),对于地图文字,您可以使用地图键的文字(而不仅仅是地图值)。
请参阅review 2591和commit 7727dee。
map[string]Point{"orig": {0, 0}} // same as map[string]Point{"orig": Point{0, 0}}
map[Point]string{{0, 0}: "orig"} // same as map[Point]string{Point{0, 0}: "orig"}