从go中的另一个文件导入映射变量

从go中的另一个文件导入映射变量,go,import,Go,Import,我有一个main.go,需要从另一个包导入一个map变量 我的另一个文件是 package greet var Selectorslist = make(map[string]string) Selectorslist["coxxnfirmedCases"] = "dsj" 当我试图保存此文件时,出现以下错误 语法错误:函数bodygo外的非声明语句 为什么会发生此错误?因为在Go中,任何非声明语句都必须在函数内部。 尝试导入函数,而不是变量: func GetSelectorsList()

我有一个main.go,需要从另一个包导入一个map变量

我的另一个文件是

package greet

var Selectorslist = make(map[string]string)
Selectorslist["coxxnfirmedCases"] = "dsj"
当我试图保存此文件时,出现以下错误

语法错误:函数bodygo外的非声明语句


为什么会发生此错误?

因为在Go中,任何非声明语句都必须在函数内部。 尝试导入函数,而不是变量:

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


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

如果您将name
Selectorslist
更改为
Selectorsmap
,可能会更好,因为它实际上是关联容器,而不是顺序容器

或者正如@mkopriva所说,您可以使用
init()
函数:

var SomeData int

func init() {
    SomeData = 10
}

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

因为在Go中,任何非声明语句都必须在函数中。您能给我正确的代码吗@demas@akhilviswam如果要提供包含一些初始数据的顶级映射变量,请使用复合文字或使用
init
func。缺失功能体go@akhilviswam,我又加了一个操场link@akhilviswam,对不起,我修复了链接