栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Go将多个字符串解析为模板?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Go将多个字符串解析为模板?

您可以使用 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"}}no1{{end}}
"abc"
后续
Template.Parse()
调用将丢失静态文本。

的文档中也对此进行了说明

Template.Parse()

(在使用同一接收者模板的多次Parse调用中,只有一个调用可以包含空格,注释和模板定义以外的其他文本。)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436248.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号