Go 初始化匿名结构中的字段

Go 初始化匿名结构中的字段,go,Go,给定此匿名结构: var myMap struct { list map[string]string someStuff *some.Object } 我可以在一个声明中初始化列表和某些东西 这不起作用: var myMap struct { list map[string]string = make(map[string]string) someStuff *some.Object = &some.Object{} } 是的,你能做到。看看这

给定此匿名结构:

var myMap struct {
  list       map[string]string
  someStuff *some.Object
}
我可以在一个声明中初始化
列表
某些东西

这不起作用:

var myMap struct {
  list       map[string]string = make(map[string]string)
  someStuff *some.Object = &some.Object{}
}

是的,你能做到。看看这个例子:

package main

import "fmt"

func main() {
    myMap := struct {
        list       map[string]string
        someStuff interface{}
    }{
        list: make(map[string]string),
        someStuff: 2,
    }

    fmt.Println(myMap)
}
给你:

var myMap = struct {
  list map[string]string
  str string
}{
  list: map[string]string{"hello":"string"},
  str: "myString",
}
您也可以这样做:

var myMap = struct {
  list map[string]string
  str string
}{map[string]string{"hello":"string"}, "myString"}
还有一个工作示例:

所以你声明你的结构,然后用大括号启动它。(我是从学校学到的。)