首页 > 后端开发 > Golang > 如何在Go HTML模板中进行计算?

如何在Go HTML模板中进行计算?

DDD
发布: 2024-11-14 22:13:02
原创
640 人浏览过

How to Perform Calculations in Go HTML Templates?

如何在 HTML 模板中执行计算?

问题:

在 Go HTML 模板中,尝试执行如下计算模板中的 {{ $length -1 }} 不起作用。我们如何实现这个功能?

答案:

不幸的是,计算不能直接在 HTML 模板中执行。这是由于将复杂逻辑与模板分离的基本设计理念。

解决方案:

相反,请考虑以下替代方法:

1.将计算结果作为参数传递:

首选方法是在 Go 代码中计算所需值并将其作为模板参数传递。

func main() {
    length := len(myMap)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ .LastIndex }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"LastIndex": length - 1})
}
登录后复制

2.注册自定义函数:

您还可以注册自定义函数并在模板中调用它们。这些函数可以执行计算并返回值。

func RegisterCalcFunc(t *template.Template) {
    t.Funcs["calcIndex"] = func(length int) int { return length - 1 }
}

func main() {
    RegisterCalcFunc(t)
    t := template.Must(template.New("index").Parse(`<p>The last index of this map is: {{ calcIndex .Length }}</p>`))
    t.Execute(os.Stdout, map[string]interface{}{"Length": len(myMap)})
}
登录后复制

以上是如何在Go HTML模板中进行计算?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板