如何在golang中定义匿名数据结构

时间:2016-09-12 15:27:19

标签: templates go

我是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格式定义相同结构的想法。但是还有其他方式直接在语言层面吗?

1 个答案:

答案 0 :(得分:2)

定义类型(在包级别或函数内)可能更容易,但您可以内联定义文字结构(这些结构的数组通常在表驱动的测试中看到)。

blah := struct{
    s string
    f int
}{"blah",12}

这些可以任意嵌套,但它更难以阅读。