我需要一些關於在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