我正在寻找一种方法来在 Go 中执行类似 JavaScript ES6 字符串模板文字的操作。例如。 在 javascript 中
let name = 'espeniel';
let test = `Hi ${name}!`
console.log(test);
结果
嗨,epeniel! 即使在 Go 中也没有办法在这样的句子中分配变量吗?
最佳答案
不完全一样,但是text/template
和 html/template
标准库中的包非常接近。
不同之处在于,您不能仅通过名称使用在模板外部定义的 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)
}
哪些输出(在 Go Playground 上尝试):
Hi espeniel, you are 21!
关于javascript - 是否存在像 javascript es6 字符串模板文字这样的 Go 字符串模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64786951/