Расскажи про строки в Go: какие особенности, как с ними работать? Чем strings.Builder лучше bytes.Buffer для конкатенации строк?

В Go есть несколько способов конкатенации строк:

Короткий ответ

Что ответить на собеседовании

В Go есть несколько способов конкатенации строк:

Подробный разбор

Ответ с пояснениями

В Go есть несколько способов конкатенации строк:

  1. Оператор + — простой и удобный для небольшого количества строк.
  2. strings.Builder — эффективный способ для многократной конкатенации, особенно в циклах.
  3. bytes.Buffer — похож на strings.Builder, но работает с байтами.
  4. fmt.Sprintf — форматирование строк, но менее эффективно для простой конкатенации.

Разница между + и strings.Builder:

  • + создаёт новую строку при каждом объединении, что приводит к выделению памяти и копированию данных. При небольшом числе операций это не критично.
  • strings.Builder использует внутренний буфер, который расширяется по мере необходимости, минимизируя количество выделений памяти и копирований. Это значительно эффективнее при большом числе операций конкатенации.

Пример:

var sb strings.Builder
for _, s := range parts {
    sb.WriteString(s)
}
result := sb.String()

Используйте + для простых случаев и strings.Builder для сложных или больших конкатенаций.

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку