Вопрос проверяет знание оптимизации работы со строками в Golang.
Используйте strings.Builder или предварительно выделенный буфер ([]byte), чтобы избежать создания промежуточных строк.
В Golang строки неизменяемы, поэтому конкатенация в цикле создает много временных объектов.
Оптимальные способы:
strings.Builder (рекомендуется):
var builder strings.Builder
for i := 0; i < 100; i++ {
builder.WriteString("text")
}
result := builder.String()Буфер ([]byte):
var buffer []byte
for i := 0; i < 100; i++ {
buffer = append(buffer, "text"...)
}
result := string(buffer)Почему это лучше:
strings.Builder минимизирует аллокации, используя внутренний буфер.
[]byte также эффективен, но требует ручного управления.