@porter.kertzmann
В Go, можно динамически передавать значения в функцию fmt.Sprintf, используя оператор "..." (троеточие) вместо списка аргументов.
Например, чтобы передать слайс значений values
в строку формата, вы можете использовать следующую конструкцию:
1 2 3 4 5 6 7 8 |
values := []interface{}{ "Мое имя", 25, true, } result := fmt.Sprintf("Привет, меня зовут %s. Мне %d лет. Я %t.", values...) fmt.Println(result) |
В приведенном примере, значения "Мое имя", 25 и true передаются в функцию fmt.Sprintf
с использованием троеточия ...
. В результате получаем строку, где значения вставлены соответствующим образом.
Обратите внимание, что троеточие ...
означает, что значения из слайса будут переданы как отдельные аргументы функции fmt.Sprintf
.
@porter.kertzmann
Вот пример динамической передачи значений в функцию fmt.Sprintf:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
package main import ( "fmt" ) func main() { name := "John" age := 25 result := fmt.Sprintf("Привет, меня зовут %s, мне %d лет.", name, age) fmt.Println(result) // Динамическая передача значений с использованием троеточия values := []interface{}{name, age} result = fmt.Sprintf("Привет, меня зовут %s, мне %d лет.", values...) fmt.Println(result) } |
В данном примере, мы сначала передаем значения переменных name
и age
напрямую в функцию fmt.Sprintf. Затем, мы создаем слайс values
, содержащий эти значения, и передаем его используя троеточие ...
.
Оба способа выводят одинаковые результаты:
1 2 |
Привет, меня зовут John, мне 25 лет. Привет, меня зовут John, мне 25 лет. |
Обратите внимание, что порядок значений в слайсе values
должен соответствовать порядку их появления в строке формата.