1 回答
TA贡献1796条经验 获得超4个赞
模板中没有内置contains函数,因此您必须为此注册函数。您可以使用strings.Contains()标准库中的函数。作为参考,这里列出了可用的内置模板函数:函数
你必须像这样对eqand的参数进行分组contains:
{{if and (eq .Method "GET") (contains .AssetID .OperationId)}}
true
{{else}}
false
{{end}}
注册strings.Contains()函数、解析模板并执行它的示例代码:
t := template.Must(template.New("").Funcs(template.FuncMap{
"contains": strings.Contains,
}).Parse(src))
params := map[string]interface{}{
"Method": "GET",
"AssetID": "/some/path/123",
"OperationId": "123",
}
if err := t.Execute(os.Stdout, params); err != nil {
panic(err)
}
params["OperationId"] = "xxx"
if err := t.Execute(os.Stdout, params); err != nil {
panic(err)
}
这将输出(在Go Playground上尝试):
true
false
- 1 回答
- 0 关注
- 100 浏览
添加回答
举报