我是golang的新手,你可能会发现我的问题非常愚蠢。但我仍然尽力为我的问题寻找解决办法,但没有运气。
我需要在以下数据结构中保留映射,我希望稍后在从模板生成页面时使用它。如果我需要在Python或Perl中定义下面的数据结构,那么我可以轻松地做到这一点。
下面是python的示例代码。
{
'abc' : {
'1' : ['A', 'B', 'C']
}
'def' : {
'1': {
'key1':'val1',
'key2':'val2',
.....
...
},
'2':{
'key1':'val1',
'key2':'val2',
.....
...
},
....
....
}
}
有没有简单的方法在golang中实现相同的目标?我理解通过使用 make(map [string] map [string] string)或
make(map [string] interface {})。但是这似乎让我觉得不可思议。
更新1: 刚刚点击了我可以用JSON格式定义相同结构的想法。但是还有其他方式直接在语言层面吗?
答案 0 :(得分:2)
定义类型(在包级别或函数内)可能更容易,但您可以内联定义文字结构(这些结构的数组通常在表驱动的测试中看到)。
blah := struct{
s string
f int
}{"blah",12}
这些可以任意嵌套,但它更难以阅读。