gpt4 book ai didi

templates - 如何解析具有来自格式化字符串的变量的模板?

转载 作者:行者123 更新时间:2023-12-01 22:26:50 25 4
gpt4 key购买 nike

我有两个领域的结构。 Msg字符串将为fmt.Sprintf(“%s%s”),我需要将模板解析为字符串中的这两个变量

type DataDB struct {
ID int
Msg string
}

尝试在此处解析模板,预期结果应为-
你好贾斯汀,我叫abc
    var name = "justin"
var msg = "abc"

justin := DataDB{ID: 1, Msg: fmt.Sprintf("%s %s", name, msg)}
s := []DataDB{justin}

tpl, err := template.New("msgs").Parse(` {{range .}}
Hello {{.name}}, my name is {{.msg}}
{{end}}
`)
if err != nil {
panic(err)
}
tpl.Execute(os.Stdout, s)

最佳答案

首先,您的DataDB结构没有名称字段,因此您将无法在模板中引用它。

将模板更新为以下内容:

type DataDB struct {
ID int
Name string
Msg string
}

然后在声明中设置一个名称
justin := DataDB{ID: 1, Name: name, Msg: msg}
现在,您可以在模板中引用 .Name字段
tpl, err := template.New("msgs").Parse(`
{{range .}}
Hello {{.Name}}, my name is {{.Msg}}
{{end}}
`)

最后,在引用模板中的字段时,需要导出字段,因此它们都应以大写字母开头。请参阅上面的我的DataDB结构版本。

编辑,您现在不需要 fmt.Sprintf(...)

Go playground

关于templates - 如何解析具有来自格式化字符串的变量的模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59478613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com