Как добавить переменную в строковую переменную в Голанге

Я пытаюсь добавить значение в строку переменной в golang, без использования printf, потому что я использую инфраструктуру revel, и это для веб-среды вместо консоли, это так:

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

поэтому я не могу получить переменные данные внутри переменной ответа, как это

response := `Variable string 14 content`

Любая идея?

4 ответа

Решение

Почему бы не использовать 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() для преобразования целого числа в строку, чтобы его можно было объединить с остальными строками.

Демо: https://play.golang.org/p/VnJBrxKBiGm

Вы можете использовать текст/шаблон:

      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"
Другие вопросы по тегам