Вопрос объясняет проблему производительности при частой конкатенации строк.
Каждая конкатенация создает новую строку, копируя данные из старых. Это приводит к O(n²) сложности и лишним аллокациям.
Проблема:
Строки в Go — неизменяемые ([]byte под капотом).
Операция s1 + s2 создает новый массив байт и копирует оба исходных.
Пример:
result := ""
for i := 0; i < 10; i++ {
result += "a" // Каждый раз создается новая строка
}Последствия:
Медленная работа при больших n.
Лишние аллокации и нагрузка на GC.
Решение:
Использовать strings.Builder