定义和访问golang中struct内部的映射字段?

定义和访问golang中struct内部的映射字段?,go,struct,Go,Struct,假设我有一个名为Test的结构 type Test struct { Value1 int `json:"value1"` Value2 int `json:"Value2"` People map[string]string `json:"Value3"` Timeupdate string `json:"Timeupdate"` } people变量是键值对的集合。如何定义和访问结构中的人员 var object = Test{Value1: arg1, V

假设我有一个名为Test的结构

type Test struct {
    Value1 int `json:"value1"`
    Value2 int `json:"Value2"`
    People map[string]string `json:"Value3"`
    Timeupdate string `json:"Timeupdate"`
}
people变量是键值对的集合。如何定义和访问结构中的人员

var object = Test{Value1: arg1, Value2: arg2, People: args3, Timeupdate: time.Now().String()}

如何定义和访问此对象中的人员?

您可以初始化空映射:

args3 := map[string]string{}
或具有值的映射:

args3 := map[string]string{"jane": "Jane"}
以后可以直接指定值:

args3["john"] = "john"
或在初始化对象之后:

var object = Test{Value1: arg1, Value2: arg2, People: args3, Timeupdate: time.Now().String()}
object.People["claire"] = "Claire"

小p(
people
而不是
people
)是故意的吗?这使得该字段在定义了
Test
的包之外不可访问,并且不会从json解析。我怀疑这是这个问题的根本原因,因为访问结构中的映射没有什么特别之处(
object.people[“key”]
),这不是故意的(谢谢提醒)。在声明对象时,我需要澄清什么应该是args3(即如何定义对象中的人)@VincentvanderWeele@AshwinSekhari
args3
应为
map[string]string
,与人员字段的类型相同。你的问题是如何初始化映射吗?@mkopriva是的,你能举例说明如何在对象内部初始化映射吗?@AshwinSekhari就像在对象外部初始化一样<代码>生成(映射[字符串]字符串)或
映射[字符串]字符串{}