2017-03-01 90 views
0

爲什麼...爲什麼這會產生一個錯誤? 是因爲它重新分配映射以允許擴展,還是因爲編譯器解析器不是爲了處理這些情況?爲什麼我們不能在const中聲明一個映射並填充它?

const (
     paths = &map[string]*map[string]string { 
      Smith: { 
       "theFather": "John", 
      }, 
     } 
     paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior" 
) 

回答

2

Constants被稱爲常數是有原因的:你希望他們只是說:不斷

類型定義您可以對該類型的值執行的操作。 Go中的map類型不是恆定的,您可以在其創建後更改其鍵值對,因此不能有map常量。

你的「調色板」,選擇在該規格定義常量:常量:

布爾常量符文常數整數常數浮點常量復常數字符串常量

見相關的問題:Declare a constant array

解決方法很簡單:聲明它是一個變量,而不是一個常量。

+0

感謝您給我一個確認,這就是我最終做的。 欣賞它。 – MrBouh

相關問題