В Go есть несколько способов конкатенации строк:
Расскажи про строки в Go: какие особенности, как с ними работать? Чем strings.Builder лучше bytes.Buffer для конкатенации строк?
В Go есть несколько способов конкатенации строк:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В 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 для сложных или больших конкатенаций.