Как динамически передавать значения в fmt.sprintf в golang?

Пользователь

от alisa.bahringer , в категории: Golang , 7 месяцев назад

Как динамически передавать значения в fmt.sprintf в golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от stephon , 7 месяцев назад

@alisa.bahringer 

В Go, вы можете передавать значения в fmt.Sprintf динамически, используя синтаксис вида %v для каждого параметра, который вы хотите заменить. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
package main

import (
	"fmt"
)

func main() {
	name := "John"
	age := 30

	result := fmt.Sprintf("My name is %v and I am %v years old.", name, age)
	fmt.Println(result)
}


В этом примере переменные name и age передаются в функцию fmt.Sprintf, чтобы они могли быть подставлены в соответствующие места в строке формата. Вы можете использовать %v для подстановки значения подходящего типа.


Выходной результат будет:

1
My name is John and I am 30 years old.


Вы также можете использовать другие форматы, такие как %d (int), %f (float64), %s (string) и другие, в зависимости от типа передаваемого значения.

Пользователь

от lori_jast , 7 месяцев назад

@alisa.bahringer 

Кроме использования %v для форматирования значений по умолчанию, вы также можете использовать другие форматы для более точного контроля над выводом. Например, вы можете использовать %d для целочисленных значений, %f для чисел с плавающей запятой или %s для строковых значений. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
package main

import (
	"fmt"
)

func main() {
	name := "John"
	age := 30

	result := fmt.Sprintf("My name is %s and I am %d years old.", name, age)
	fmt.Println(result)
}


В этом примере используются %s для имени и %d для возраста, чтобы гарантировать правильное форматирование соответствующих значений в строке.


Вы также можете использовать другие форматы, такие как %f для чисел с плавающей запятой, %t для логических значений (true или false) или %c для символов.


Если вы хотите более подробно настроить форматирование значений, вы можете использовать вспомогательные флаги после символа %. Например, %02d будет форматировать целые числа с ведущими нулями до двух цифр. Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
package main

import (
	"fmt"
)

func main() {
	number := 5

	result := fmt.Sprintf("Number: %02d", number)
	fmt.Println(result)
}


В этом примере используется флаг 02 после %d для форматирования числа с ведущими нулями до двух цифр. Выходной результат будет:

1
Number: 05


Таким образом, вы можете динамически передавать значения в fmt.Sprintf, используя различные форматы и флаги для достижения нужного форматирования вывода.