我有如下代码t, err := template.New("todos").Parse("You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\"")Name在设置and的值之前Description,我必须检查行中定义的模板化变量是什么"You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\""。此行是用户定义的。所以,我不会事先知道模板变量是什么。不使用正则表达式的任何其他方式?
1 回答
慕容森
TA贡献1853条经验 获得超18个赞
我可能会为此使用正则表达式,但您也可以使用解析结果来避免它,就像@Cerise Limón说的那样。解决方案可能看起来像这样。
package main
import (
"log"
"text/template"
"text/template/parse"
)
func main() {
t, err := template.New("todos").Parse("You have a task named \"{{ .Name}}\" with description: \"{{ .Description}}\"")
if err != nil {
panic(err)
}
for _, node := range t.Root.Nodes {
if (node.Type() == parse.NodeAction) {
log.Println(node.String())
}
}
}
- 1 回答
- 0 关注
- 109 浏览
添加回答
举报
0/150
提交
取消