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

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

Mary-Kate Olsen
发布: 2024-11-14 14:22:02
原创
393 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板