Avatar ·

如何在Go中声明常量map?

大家好!我刚开始学习Go,遇到了一个问题。我需要声明一个map,其值在程序执行期间不应改变。本质上,它应该是一个常量。 在其他语言中,例如C++或Java,可以使用`static final`或`const`。在Go中,我知道有关键字`const`,但当我尝试用它声明map时,编译器会报错。 以下是我尝试过的代码: ```go const myMap = map[string]int{ "apple": 5, "banana": 3, } ``` 编译器提示:`const initializer map[string]int{...} is not a constant`。我理解Go对常量要求严格,但如何声明一个不可变的map呢?我需要这个map在程序的不同部分都可访问,但没有人能修改它(添加/删除元素或更改值)。 我听说可以使用初始化函数或将map包装在结构体中,但不知道在Go社区中哪种方法被认为是正确的。请指教,谢谢!