猿问

如何检查一行或字符串是否包含作为 Golang 中的模板化变量?

我有如下代码

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}}\""。此行是用户定义的。所以,我不会事先知道模板变量是什么。

不使用正则表达式的任何其他方式?


森栏
浏览 110回答 1
1回答

慕容森

我可能会为此使用正则表达式,但您也可以使用解析结果来避免它,就像@Cerise Limón说的那样。解决方案可能看起来像这样。package mainimport (    "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())        }    }}
随时随地看视频慕课网APP

相关分类

Go
我要回答