【发布时间】:2016-10-25 08:34:00
【问题描述】:
我想创建一个如下所示的常量映射:
const (
running = map[string]string{
"one": "ONE",
"two": "TWO",
}
)
但是每当我这样做时,我都会收到以下错误:
const initializer map[string]string literal is not a constant
为什么会这样,为什么 Golang 不像其他变量一样对待它们?
【问题讨论】:
-
我认为为什么这个问题的答案是,go 的作者认为实现的复杂性不值得它带来的好处。
-
我认为您可能想要一个不可变的地图。你不能仅仅因为 Go 语言中的 map 是一种语言结构而不是某些
Map接口的实现而声明不可变映射。也就是说,您无法实现自己的地图(通过接口)与内部 Go 地图兼容。
标签: dictionary go