是否存在类似javascript es6字符串模板文字的Go字符串模板?

是否存在类似javascript es6字符串模板文字的Go字符串模板?,javascript,go,templates,ecmascript-6,string-literals,Javascript,Go,Templates,Ecmascript 6,String Literals,我正在寻找一种在Go中实现JavaScript ES6字符串模板文字的方法。比如说在javascript中 let name = 'espeniel'; let test = `Hi ${name}!` console.log(test); 结果 你好,埃佩尼尔 在这样的句子中,即使是在一次尝试中,也没有办法分配变量吗?不完全相同,但是标准库中的程序包非常接近 不同之处在于,不能仅通过名称使用模板外定义的Go变量的值,必须传递要在模板中使用的值。但是您可以传递一个映射或结构,并且可以引用模板中

我正在寻找一种在Go中实现JavaScript ES6字符串模板文字的方法。比如说在javascript中

let name = 'espeniel';
let test = `Hi ${name}!`
console.log(test);
结果

你好,埃佩尼尔 在这样的句子中,即使是在一次尝试中,也没有办法分配变量吗?

不完全相同,但是标准库中的程序包非常接近

不同之处在于,不能仅通过名称使用模板外定义的Go变量的值,必须传递要在模板中使用的值。但是您可以传递一个映射或结构,并且可以引用模板中的键或结构字段(通过它们的名称)

例如:

var params = struct {
    Name string
    Age  int
}{"espeniel", 21}

t := template.Must(template.New("").Parse(`Hi {{.Name}}, you are {{.Age}}!`))

if err := t.Execute(os.Stdout, params); err != nil {
    panic(err)
}
哪些输出(在上尝试):


参见相关内容:

还有
fmt.Sprintf
,它更简洁,但格式字符串语法不太友好。
Hi espeniel, you are 21!