импортировать переменную карты из другого файла в go - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть main. go и мне нужно импортировать переменную карты из другого пакета.

мой другой файл. go is

package greet

var Selectorslist = make(map[string]string)
Selectorslist["coxxnfirmedCases"] = "dsj"

Когда я пытаюсь сохранить это файл, появляется следующая ошибка.

синтаксическая ошибка: оператор без объявления вне тела функции go

Почему эта ошибка возникает?

1 Ответ

2 голосов
/ 05 апреля 2020

Потому что в Go любые не объявленные операторы должны быть внутри функций. Попробуйте импортировать функцию, а не переменную:

func GetSelectorsList() map[string]string {
  var selectorslist = make(map[string]string)
  selectorslist["coxxnfirmedCases"] = "dsj"
  return selectorsList
}


func main() {
    data := GetSelectorslist()
    fmt.Println(data)
}

go детская площадка

Может быть, будет лучше, если вы измените имя Selectorslist на Selectorsmap потому что это на самом деле ассоциативный контейнер, но не последовательный.

Или, как сказал @mkopriva, вы можете использовать функцию init():

var SomeData int

func init() {
    SomeData = 10
}

func main() {
    fmt.Println(SomeData)
}

go детская площадка

...