2014-09-26 33 views

回答

2

是的,你可以用名称值对声明一个映射。您可以使用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

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 

注意与围棋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"} 
+0

你的榜样,我得到这个'外功能body'非声明语句..我直接宣布该地图包中的‘全局’ var – clarkk 2014-09-26 22:21:23

+0

@clarkk我编辑了答案 – VonC 2014-09-26 22:23:52