🟢 Лёгкий · 1 очк. Строки и руны
Как наиболее эффективно склеить множество строк в цикле?
A Оператором + в цикле
B fmt.Sprintf
C strings.Builder
D bytes.Buffer
Объяснение вопроса

Наиболее эффективно использовать strings.Builder: он наращивает буфер без лишних аллокаций. Конкатенация через += каждый раз создаёт новую строку (O(n^2) по памяти и времени). strings.Join эффективен, когда все строки уже в слайсе.

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

Если известен итоговый размер

b.Grow(totalLen)  // одна аллокация под весь размер
for _, s := range items {
    b.WriteString(s)
}

Builder внутри хранит []byte и при необходимости увеличивает его (удваивает capacity). Копирование в string делается один раз в конце. Не используйте += в цикле для большого числа строк.

🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.