我正在尝试了解 Golang 语言
今天我有一个问题,用Golang替换字符串中的变量
我已经搜索了如何在golang中解决它,并发现了 2种方式,例如blog。
第一种方法是使用 fmt.Sprintf
,例如(我在Go Playground here上做了一个):
msg := fmt.Sprintf("Hello %s, you have %d new messages", "Alice", 15)
fmt.Println(msg)
第二个是使用 text/template
包,例如(我在Go Playground here上做了一个):
msg := "Hi {{.DisplayName}}, you have {{ .NumMessages }} new messages"
data := map[string]interface{}{
"DisplayName": "Bob",
"NumMessages": 15,
}
tmpl, err := template.New("msg").Parse(msg)
buf := &bytes.Buffer{}
if err = tmpl.Execute(buf, data); err != nil {
fmt.Println(err)
}
s := buf.String()
fmt.Println(s)
我注意到第一种方法很简单,但它不易阅读,第二种方法非常复杂(也许我们需要创建一个实用函数)>
我使用过 JavaScript ,发现它非常简单:
displayName = "Trudy"
numMessages = 15
msg = `Hello ${displayName}, you have ${numMessages} new messages`
console.log(msg)
有什么方法可以在Golang中简化此操作吗?因为我刚刚学习过这种语言,所以我希望有很多想法可以改善我的体验。
编辑以重新打开问题
我的希望是Golang中是否有类似的方法,例如JavaScript,它与上述方法也有所不同,但涉及到我提到的问题(它不应将占位符用作变量的第一种方法,不易阅读,并且其次也不复杂)
编辑以关闭此问题
经过一段时间的搜索,我认为Golang没有像JavaScript一样避免这种问题的简单方法。因此,我已关闭此问题,没有其他任何问题。