为什么我们不能声明一个地图并在const之后填充它?

时间:2017-03-01 10:49:22

标签: go constants

为什么......为什么会产生错误? 是因为它重新分配地图以允许扩展,还是因为编译器解析器不是为了处理这些情况?

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

1 个答案:

答案 0 :(得分:2)

Constants被称为常量,原因如下:您希望它们只是:常量

类型定义了您可以对该类型的值执行的操作。 Go中的map类型不是常量,您可以在创建后更改其键值对,因此您不能拥有map常量。

选择常量的“调色板”在Spec:Constants:

中定义
  

布尔常量符文常量整数常量浮点常量复数常量字符串常量

请参阅相关问题:Declare a constant array

解决方法很简单:将其声明为变量而不是常量。