gpt4 book ai didi

go - map 查找失败时从模板返回解析错误

转载 作者:IT王子 更新时间:2023-10-29 01:39:13 25 4
gpt4 key购买 nike

我有一系列使用通用 map[string]string 值的模板。有点像

 <h1> You sent in {{.Field1}} and {{.Field2}} </h1> 

有效负载将为:{"Field1": "Value1", "Field2": "Value2"}

调用为:err := tmpl.Execute(w, data);//数据是 map[string]string 并从有效负载中解码

我无法将 data 转换为 struct,因为模板和负载是在运行时确定的。这些模板是由业务用户创建的,我不想为每个模板创建一个类型并在每次有新模板时更改后端。因此希望保留 map[string]string 之类的解决方案。

上述设计的问题在于,模板中使用的字段未在运行时传入。当我执行模板时,缺少的字段在模板中返回一个空字符串。如果发生这种情况,我想返回一个错误。

所以,我想知道是否有办法让模板在映射查找失败时返回解析错误?或者有没有一种方法可以将带有运行时错误检查的通用 struct 值传递给允许动态有效负载的模板?

谢谢!

最佳答案

使用 "missingkey=error"选项。

tmpl := template.Must(template.New("").Option("missingkey=error").Parse(
`<h1> You sent in {{.Field1}} and {{.Field2}} </h1>`))

playground example

关于go - map 查找失败时从模板返回解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36339219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com