Как strings.Builder избегает копирований?

Middle
168 просмотров
AFK Offer AI

strings.Builder внутри содержит []byte, в который он дописывает данные через append. Когда вызываешь String(), он конвертирует slice в строку через unsafe — без копирования. Это безопасно потому что Builder запрещает копирование себя (проверка через noCopy поле). Результат — одна аллокация вместо N при конкатенации через +. Можно вызвать Grow() заранее чтобы зарезервировать память.

Следующий вопрос

Что такое swaggo?