Подтвердить что ты не робот

Создание глобальных переменных карты

Мне нужна небольшая помощь в создании глобальной переменной Map в Go. Я сделал следующее:

package ...
import(
...
)
...
type ir_table struct{
    symbol      string
    value       string
}
var ir_MAP map[int]ir_table

Так как я не инициализирую карту, я получаю ошибку разворота нулевого указателя. Что я должен сделать, чтобы использовать эту переменную глобально? Или, если это не правильный способ сделать это, пожалуйста, помогите мне.

4b9b3361

Ответ 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])
}