Я новичок в golang. Я не могу найти какой-либо официальный документ, показывающий, как объединить несколько укусов в строку.
Что я ожидаю:
Вход: "key:", "value", ", key2:", 100
Вывод: "Ключ: значение, ключ2: 100"
Как объединить несколько строк и int в одну строку в golang?
Ответ 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
Буфер
Если вам нужно объединить много строк, я бы предпочел использовать буфер, а не те решения, которые были упомянуты выше.