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

时间:2018-04-13 22:40:17

标签: go revel

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

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

所以我无法在变量响应中获取可变数据,比如

response := `Variable string 14 content`

有什么想法吗?

4 个答案:

答案 0 :(得分:10)

为什么不使用fmt.Sprintf

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

答案 1 :(得分:3)

我相信,已被接受的答案已经是最佳实践。就像提供基于@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

答案 2 :(得分:0)

如果要将字符串保留在变量中而不是打印出来,请尝试以下操作:

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

答案 3 :(得分:0)

您也可以使用os.Expand

package main

import (
   "fmt"
   "os"
)

func main() {
   data := 14
   response := "Variable string $data content"
   response = os.Expand(response, func(s string) string {
      switch s {
      case "data": return fmt.Sprint(data)
      default: return ""
      }
   })
   println(response == "Variable string 14 content")
}

https://golang.org/pkg/os#Expand