drwjv28028 2014-08-05 16:06
浏览 2
已采纳

在Golang中,如何将特定类型的地图定义为唯一类型?

So I'm at that awkward place where I'm trying to pass context data over to a template, and there's not a whole lot of really great examples out there that don't involve passing a preexisting structure. The best I have come up with is something like the following:

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

Using the above, I can reference ThingyA and all of its properties and methods in my template by using {{ .thingyA.[PROPERTY] }}. So that's pretty good in itself, in that it allows me to define a context in a simple Django-ish fashion, without using an anonymous struct, which would be a bit clunky.

But I'm wondering if there is some way to define a new type Context, so that I could simplify the above to the following:

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

That is, I would like to define a specific type Context that always has the form map[string]interface{}, and can be initialized in the same manner as a map. Any ideas on how to go about this?

  • 写回答

1条回答 默认 最新

  • dt56449492 2014-08-05 16:14
    关注
    type Context map[string]interface{}
    c := Context{"foo": 1, "bar": 2}
    

    Playground.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器