Golang

时间:2018-12-02 23:55:27

标签: go

我有这个

var Map = map[string]Model{}

var (
    mtx    sync.Mutex
    people Map
)

我收到此错误:

enter image description here

是否可以通过任何方式引用地图类型:

var (
    mtx    sync.Mutex
    people reflect.Type(Map)  // <<< ?
)

或者我应该像这样声明类型:

type Map map[string]Model

然后像我在第54行一样初始化地图?我只是试图在文件中初始化地图,而不必在Init函数中完成。

3 个答案:

答案 0 :(得分:2)

我认为您想使用类似的东西

type Model struct{}
type ModelMap map[string]Model

var (
    mtx sync.Mutex
    people = ModelMap{}
)

答案 1 :(得分:1)

您可以使用地图文字来初始化地图:

type Model struct {}

var people = map[string]Model{
    "Foo": Model{},
    "Bar":   Model{},
}

答案 2 :(得分:0)

我不确定我是否理解您的问题,但是您可以执行以下操作:

 var Map = map[string]Model{}

 var (
   mtx sync.Mutex
   people = Map
 )

通过这种方式people被初始化为与Map相同。