首页  >  文章  >  后端开发  >  为什么我不能将 Map 声明为常量并在 Go 中修改它?

为什么我不能将 Map 声明为常量并在 Go 中修改它?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-14 14:22:02344浏览

Why Can't I Declare a Map as a Constant and Modify It in Go?

将映射声明和修改为常量

在 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn