Back to questions
Senior
6
Какие способы конкатенации строк есть в Go? В чём разница между + и strings.Builder?
Companies where asked
Lenta Tech
Answer from AI
sobes.tech AI
В Go есть несколько способов конкатенации строк:
- Оператор
+— простой и удобный для небольшого количества строк. strings.Builder— эффективный способ для многократной конкатенации, особенно в циклах.bytes.Buffer— похож наstrings.Builder, но работает с байтами.fmt.Sprintf— форматирование строк, но менее эффективно для простой конкатенации.
Разница между + и strings.Builder:
+создаёт новую строку при каждом объединении, что приводит к выделению памяти и копированию данных. При небольшом числе операций это не критично.strings.Builderиспользует внутренний буфер, который расширяется по мере необходимости, минимизируя количество выделений памяти и копирований. Это значительно эффективнее при большом числе операций конкатенации.
Пример:
var sb strings.Builder
for _, s := range parts {
sb.WriteString(s)
}
result := sb.String()
Используйте + для простых случаев и strings.Builder для сложных или больших конкатенаций.