如何在golang中将变量添加到字符串变量

How to add variable to string variable in golang

我试图在不使用 printf 的情况下向 golang 中的变量字符串添加一个值,因为我使用的是 Revel 框架,这是针对 Web 环境而不是控制台,情况是这样的:

data := 14
response := `Variable string content`

所以我无法在变量响应中获取变量数据,就像这样

response := `Variable string 14 content`

有什么想法吗?

为什么不使用 fmt.Sprintf

data := 14
response := fmt.Sprintf("Variable string %d content", data)

如果你想把字符串保存在变量中而不是打印出来,试试这样:

data := 14
response := "Variable string" + data + "content"

我相信接受的答案已经是最佳实践了。就像根据@Ari Pratomo 回答给出一个替代选项:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    data := 14
    response := "Variable string " + strconv.Itoa(data) + " content"
    fmt.Println(response) //Output: Variable string 14 content
}

它使用 strconv.Itoa() 将整数转换为字符串,因此它可以与其余字符串连接。

演示:https://play.golang.org/p/VnJBrxKBiGm

您可以使用 text/template:

package main

import (
   "strings"
   "text/template"
)

func format(s string, v interface{}) string {
   t, b := new(template.Template), new(strings.Builder)
   template.Must(t.Parse(s)).Execute(b, v)
   return b.String()
}

func main() {
   data := 14
   response := format("Variable string {{.}} content", data)
   println(response)
}