我正在尝试在Golang中向一个变量字符串添加一个值,但不想使用printf,因为我正在使用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)
我认为已经有了最佳实践的答案。只是想基于@ 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()
将整数转换为字符串,以便能够与其他字符串连接。
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)
}
data := 14
response := "Variable string" + data + "content"
data
是一个整数
,你不能直接在字符串
上进行如此的插入。否则你会遇到以下错误:invalid operation: "Variable string" + data (mismatched types string and int)
。 - omotto