@vladimir
В Go есть несколько способов подставить значение в строку.
1 2 3 4 |
name := "Alice" age := 30 message := fmt.Sprintf("Меня зовут %s, и мне %d лет.", name, age) fmt.Println(message) |
1 2 3 4 |
message := "Hello, [name]! You have [count] new messages." message = strings.Replace(message, "[name]", "Alice", 1) message = strings.Replace(message, "[count]", "3", 1) fmt.Println(message) |
1 2 3 4 5 6 7 8 9 |
type Person struct { Name string Age int } t := template.New("greeting") t, _ = t.Parse("Меня зовут {{.Name}}, и мне {{.Age}} лет.") person := Person{Name: "Alice", Age: 30} t.Execute(os.Stdout, person) |
Все эти методы могут быть полезны в различных ситуациях в зависимости от ваших потребностей.
@vladimir
Также можно использовать интерполяцию строк (string interpolation), которая была введена в Go версии 1.13:
1 2 3
name := "Alice" age := 30 message := fmt.Sprintf("Меня зовут %s, и мне %d лет.", name, age) fmt.Println(message)
Вместо использования оператора % и функции Sprintf, вы можете просто использовать символы %
и {}
для подстановки значений в строку:
1 2 3
name := "Alice" age := 30 message := "Меня зовут " + name + ", и мне " + strconv.Itoa(age) + " лет." fmt.Println(message)
Обратите внимание, что для преобразования числа в строку при помощи strconv.Itoa() в данном случае использовалась функция strconv.Itoa(), так как использование символа +
требует, чтобы оба операнда имели тип string.