在一个操作中声明具有键值对的映射

时间:2014-09-26 22:14:35

标签: go

是否可以声明具有键值对的地图?

像这样的东西

var env map[string]int{
    "key0": 10,
    "key1": 398
}

2 个答案:

答案 0 :(得分:3)

是的,您可以声明具有名称值对的地图。您可以将variable declarationmap 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 2591commit 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"}