Что такое String Builder

«Что такое String Builder» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

String Builder в Go — это эффективный способ конкатенации строк без лишних аллокаций памяти. В отличие от обычного + или +=, он использует bytes.Buffer или strings.Builder для накопления данных перед финальным преобразованием в строку.

Пример:

package main

import (
    "strings"
)

func main() {
    var builder strings.Builder
    for i := 0; i < 10; i++ {
        builder.WriteString("a") // Добавляем строку без копирования
    }
    result := builder.String() // Получаем итоговую строку
    println(result)
}

Почему лучше +?

  • При конкатенации через + каждый раз создаётся новая строка, что приводит к O(n²) сложности.
  • strings.Builder копит данные в буфере и делает одно выделение памяти в конце.

Важно:

  • После вызова String() нельзя повторно использовать билдер без Reset().
  • WriteString и Write оптимизированы для минимизации копирований.