登录
首页 >  Golang >  Go问答

从 GO 模板获取原始源码

来源:stackoverflow

时间:2024-04-20 08:42:35 463浏览 收藏

哈喽!今天心血来潮给大家带来了《从 GO 模板获取原始源码》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

给定一个 go html 模板对象,如何检索原始源定义?

我在文档中没有看到任何函数,但一定有办法做到这一点。


正确答案


template.Template 类型有一个 template.tree 导出字段,其中包含(模型)解析的模板。

请注意,即使该字段被导出,也不是导出供您使用,而是引用文档:

*parse.tree 字段仅导出供 html/template 使用,所有其他客户端应将其视为未导出。

把这个放在一边,有了解析树,就有可能重建它的构建源。 parse.Tree 有一个 root 字段,该字段有一个 String() 方法,该方法从树构建源文本。

例如:

src := `hi {{.name}}. you are {{.age}} years old.`
t := template.must(template.new("").parse(src))
fmt.println(t.tree.root.string())

这将输出(在 Go Playground 上尝试):

Hi {{.Name}}. You are {{.Age}} years old.

如前所述:template.tree 不是公共 api 的一部分。您可以使用它,但不能保证它会保持导出状态,并且在未来版本中也能正常工作。您应该做的是保留您解析的源代码,而不是依赖 template.tree

好了,本文到此结束,带大家了解了《从 GO 模板获取原始源码》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>