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

标签 templates go

我是 golang 的新手,您可能会觉得我的问题很愚蠢。但我仍然尽我所能为我的问题找到解决方案,但没有运气。

我需要在下面的数据结构中保留映射,稍后我想在从模板生成页面时使用它。如果我需要在 Python 或 Perl 中定义以下数据结构,那么我可以轻松地做到这一点。

下面是 python 的示例代码。

{
    'abc' : {
        '1' : ['A', 'B', 'C']
    }
    'def' : {
        '1': {
            'key1':'val1',
            'key2':'val2',
            .....
            ...
            },
        '2':{
            'key1':'val1',
            'key2':'val2',
            .....
            ...
            },
        ....
        ....
    }
}

有什么简单的方法可以在 golang 中实现相同的目的吗?我知道通过使用 ma​​ke(map[string]map[string]string)
制作( map [字符串]接口(interface){}) 。但这在我看来仍然难以理解。

更新 1: 只是点击了我也可以用 JSON 格式定义相同结构的想法。但是还有没有其他直接在语言层面的方法呢?

最佳答案

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

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

这些可以任意嵌套,但会变得更难阅读。

关于templates - 如何在golang中定义匿名数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39453851/

相关文章:

c++ - 对象通用计数器的研制

javascript - 在 Handlebars.js 中实现循环标签

go - 理解 Go 中的接口(interface)

csv - Go stdlib 是否具有将 csv 文件读入 []map[string]string 的功能?

PHPTAL 和嵌套模板。可能的?

c++ - 尝试在 C++ 中使用递归为模板化多项式类组合类似项

sockets - Golang tcp socket read 最终给出 EOF

xml - 无法在 Go 中正确解码/编码动态 XML 结构

go - 在 `go install package` 期间创建一些二进制文件

c++ - 嵌套类显式特化 : different compiler behavior