template 概述
text/template
html/templatetext/templatetext/template
解析流程
template.Parse()template.New()*Template
parseexecuteio.Writer
下边我们看一段简单的 使用template 的代码
运行后可以看到输出:
接下来我们就一起来分析下执行过程:
template.New
Parse阶段
*parse.Treehtml/template*commonmap{{define block}}parse.Tree
tRootparse.Tree
TextNodeActionNode.Nameparse.Tree
Execute阶段
Root
ActionNodeTextNode
ActionNodeevalPipeline()printValue()TextNodeWrite()
io.Writer
至此, 整个流程完成.
小结
text/template
- Parse阶段
template.Templateparse.NodeListparse.Node
- Execute阶段
parse.Nodeio.Writer
protobuf