在 Go 中,映射不是常量,这意味着它们的键值对在创建后无法修改。尝试将映射声明为常量并随后填充它(如下面的代码片段所示)将导致错误:
const ( paths = &map[string]*map[string]string{ "Smith": { "theFather": "John", }, } paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior" )
常量表示不可变值,而映射Go 中的 type 不允许修改键值对。规范将常量声明限制为特定类型,包括布尔、符文、整数、浮点、复数和字符串常量。
解决此问题问题,将map声明为变量而不是常量,如下所示:
var paths = map[string]*map[string]string{ "Smith": { "theFather": "John", }, } paths["Smith"]["theSon"] = paths["Smith"]["theFather"] + " Junior"
以上是为什么我不能将 Map 声明为常量并在 Go 中修改它?的详细内容。更多信息请关注PHP中文网其他相关文章!