Как объединить несколько строк и int в одну строку в golang?

Я новичок в golang. Я не могу найти какой-либо официальный документ, показывающий, как объединить несколько укусов в строку. Что я ожидаю:
Вход: "key:", "value", ", key2:", 100
Вывод: "Ключ: значение, ключ2: 100"

Ответ 1

Мне нравится использовать метод fmt Sprintf для этого типа вещей. Он работает как обычный Printf в Go или C, только возвращает строку. Вот пример:

output := fmt.Sprintf("%s%s%s%d", "key:", "value", ", key2:", 100)

Go docs для fmt.Sprintf

Ответ 2

Вы можете использовать strings.Join, который почти в 3 раза быстрее, чем fmt.Sprintf. Однако это может быть менее читаемым.

output := strings.Join([]string{"key:", "value", ", key2:", strconv.Itoa(100)}, "")

См. https://play.golang.org/p/AqiLz3oRVq

строки .Join vs fmt.Sprintf

BenchmarkFmt-4       2000000           685 ns/op
BenchmarkJoins-4     5000000           244 ns/op

Буфер

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