有没有一种简单的方法,例如,template.ParseFiles("base.html", "home.html")
但是要使用字符串从一组字符串构建模板?
我有一个基本模板和一个要在基本模板之上构建的页面模板列表(全部作为字符串)。
我想出了如何合并它们的方法,但是我的解决方案很冗长,即使可以使用,看起来也不是很优雅。
您可以使用 function 创建一个新的空模板。然后,您可以使用该 方法 创建一个新的,空的, 关联的 模板。您可以使用方法将其解析为“
into” 。template.New()
__Template.New()
____Template.Parse()
看起来像这样:
func parseTemplates(templs ...string) (t *template.Template, err error) {
t = template.New("_all")
for i, templ := range templs {
if _, err = t.New(fmt.Sprint("_", i)).Parse(templ); err != nil {
return
}
}
return
}
测试它:
t, err := parseTemplates(
`{{define "one"}}I'm #1.{{end}}`,
`{{define "two"}}I'm #2, including #1: {{template "one" .}}{{end}}`,
)
if err != nil {
panic(err)
}
if err = t.ExecuteTemplate(os.Stdout, "two", nil); err != nil {
panic(err)
}
输出(在Go Playground上尝试):
I'm #2, including #1: I'm #1.
另请参阅相关问题:转到模板名称
尽管我们可以Template.Parse()
在单个模板上多次调用该方法,并且可以正确解析多个
命名
模板,但是仍然建议template.Template
通过调用为每个模板获取一个新模板Template.New()
。因为如果模板文本的内容
超出 命名模板,则它们将被覆盖,并且仅保留最后一个。例如:abc {{define "one"}}no 1{{end}}
。"abc"
后续Template.Parse()
调用将丢失静态文本。
的文档中也对此进行了说明Template.Parse()
:
(在使用同一接收者模板的多次Parse调用中,只有一个调用可以包含空格,注释和模板定义以外的其他文本。)
问题内容: 我试图解析一个字符串,以分隔字符串中的列表。我目前有字符串: 有什么方法可以解析字符串,以便字典键是列表的第一个元素,而键的值是元素的下一个。例如: 问题答案: insted的的,你可以有列表: 您可以使用从字符串解析Python数据结构
问题内容: 我有这个字符串:10,692,467,440,017.120(是一个数字)。 我想将其解析为BigDecimal。问题是我没有尝试过DecimalFormat和NumbeFormat。有什么帮助吗? 问题答案: 试试这个 如果要构建具有I18N支持的应用程序,则应使用 还请记住,它可能会引发a,因此您需要处理它(使用try / catch)或引发它,然后让程序的另一部分处理它
问题内容: 我有一个弦 然后,我想将其解析为sqlDate。并将其插入数据库。 是否可以将该字符串解析为sqlDate?!?! 是的,SQL日期格式为“ yyyy-mm-dd” 问题答案: 用于将String日期解析为java.util.Date 然后使用millis将其转换为java.sql.Date
我想将或这样的字符串解析为整数和双精度。用Dart怎么做?
问题内容: 我具有以下值: 和以下类: 我想将其解析为a 或a 使用Jackson的 方法最简单? 问题答案: 我终于明白了:
问题内容: 我有一个将存储Number对象的列表。该列表将通过分析字符串列表来填充,其中每个字符串都可以表示Number的任何子类。 如何将字符串解析为通用数字,而不是特定的整数或浮点数? 问题答案: 数字不能实例化,因为它是抽象类。我建议传入数字,但是如果您设置为字符串,则可以使用任何子类来解析它们, 要么 @请参阅NumberFormat