如何在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()
将整数转换为字符串,因此它可以与其余字符串连接。
您可以使用 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)
}
我试图在不使用 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()
将整数转换为字符串,因此它可以与其余字符串连接。
您可以使用 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)
}