Создание глобальных переменных карты
Мне нужна небольшая помощь в создании глобальной переменной Map в Go. Я сделал следующее:
package ...
import(
...
)
...
type ir_table struct{
symbol string
value string
}
var ir_MAP map[int]ir_table
Так как я не инициализирую карту, я получаю ошибку разворота нулевого указателя. Что я должен сделать, чтобы использовать эту переменную глобально? Или, если это не правильный способ сделать это, пожалуйста, помогите мне.
Ответы
Ответ 1
Вам нужно инициализировать его пустой картой:
var ir_MAP = map[int]ir_table{}
или, как предложила система:
var ir_MAP = make(map[int]ir_table)
Проблема в том, что нулевое значение карты равно nil, и вы не можете добавлять элементы к карте nil.
Ответ 2
Ты почти прав. Вы еще не инициализировали свою карту.
Здесь рабочий код в Игровая площадка.
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])
}