2014-09-26 99 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