【问题标题】:In Golang, how do I define a specific sort of map as a unique type?在 Golang 中,如何将特定类型的地图定义为唯一类型?
【发布时间】:2014-08-05 16:06:00
【问题描述】:

所以我在那个尴尬的地方,我试图将上下文数据传递给模板,并且没有很多真正好的例子不涉及传递预先存在的结构。我想出的最好的方法如下:

templ.Execute(writer, map[string]interface{}{
    "thingyA": ThingyA,
    "thingyB": ThingyB,
})

使用上述内容,我可以使用{{ .thingyA.[PROPERTY] }} 在我的模板中引用ThingyA 及其所有属性和方法。所以这本身就很好,因为它允许我以简单的 Django 风格定义上下文,而无需使用匿名结构,这会有点笨拙。

但我想知道是否有某种方法可以定义一个新类型Context,以便我可以将上面的内容简化为以下内容:

templ.Execute(writer, Context{
    "thingyA": ThingyA,
    "thingyB": ThingyB,
})

也就是说,我想定义一个特定类型Context,它始终具有map[string]interface{} 的形式,并且可以以与映射相同的方式进行初始化。关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: templates go datacontext custom-type


    【解决方案1】:
    type Context map[string]interface{}
    c := Context{"foo": 1, "bar": 2}
    

    Playground.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2018-04-27
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      相关资源
      最近更新 更多