moo*_*jun 2 javascript templates go string-literals ecmascript-6
我正在寻找一种方法来在 Go 中执行诸如 JavaScript ES6 字符串模板文字之类的操作。例如。在 JavaScript 中
let name = 'espeniel';
let test = `Hi ${name}!`
console.log(test);
Run Code Online (Sandbox Code Playgroud)
结果
嗨埃佩尼尔! 即使在 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)
}
Run Code Online (Sandbox Code Playgroud)
哪个输出(在Go Playground上尝试):
Hi espeniel, you are 21!
Run Code Online (Sandbox Code Playgroud)
请参阅相关内容:格式化 Go 字符串而不打印?