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

oma*_*ave 6 go revel

我正在尝试在golang中为变量字符串添加一个值,而不使用printf,因为我使用的是revel框架,这是用于web环境而不是控制台,情况就是这样:

data := 14
response := `Variable string content`
Run Code Online (Sandbox Code Playgroud)

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

response := `Variable string 14 content`
Run Code Online (Sandbox Code Playgroud)

任何的想法?

mu *_*ort 17

为什么不用fmt.Sprintf

data := 14
response := fmt.Sprintf("Variable string %d content", data)
Run Code Online (Sandbox Code Playgroud)


Bay*_*ayu 6

我相信接受的答案已经是最佳实践之一。就像根据@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
}

Run Code Online (Sandbox Code Playgroud)

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

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


小智 6

您可以使用文本/模板

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)
}
Run Code Online (Sandbox Code Playgroud)