我需要一些关于在Go中创建全局地图变量的帮助。我所做的如下:创建全局地图变量
package ...
import(
...
)
...
type ir_table struct{
symbol string
value string
}
var ir_MAP map[int]ir_table
由于我没有初始化映射,我得到一个零指针解引用错误。我必须做些什么来全局使用这个变量?或者,如果这不是一个正确的方法,请指导我。
我需要一些关于在Go中创建全局地图变量的帮助。我所做的如下:创建全局地图变量
package ...
import(
...
)
...
type ir_table struct{
symbol string
value string
}
var ir_MAP map[int]ir_table
由于我没有初始化映射,我得到一个零指针解引用错误。我必须做些什么来全局使用这个变量?或者,如果这不是一个正确的方法,请指导我。
你需要用空地图初始化:
var ir_MAP = map[int]ir_table{}
,或者为“系统”提示:
var ir_MAP = make(map[int]ir_table)
的问题是,一个地图的零值是零,并且您无法将项目添加到零映射。
谢谢,安迪,我使用了“系统”的建议。有用。 – progfan 2013-03-02 19:39:32
你几乎没错。你还没有初始化你的地图。
下面是The Playground工作代码。
package main
import "fmt"
type ir_table struct{
symbol string
value string
}
// define global map; initialize as empty with the trailing {}
var ir_MAP = map[int]ir_table{}
func main() {
ir_MAP[1] = ir_table{symbol:"x", value:"y"}
TestGlobal()
}
func TestGlobal() {
fmt.Printf("1 -> %v\n", ir_MAP[1])
}
初始化呢? 'var ir_MAP = make(map [int] ir_table)' – 2013-03-02 18:56:17