🔴 Сложный · 3 очк. Стандартная библиотека
Зачем существует strings.Clone(s) (Go 1.20+), если строки неизменяемы?
A Для глубокого копирования
B Чтобы освободить большой массив, на который ссылается подстрока
C Для конвертации []byte в string
D Для потокобезопасности
Объяснение вопроса

Подстрока s[i:j] может разделять базовый массив с длинной строкой, не давая GC освободить его. strings.Clone(s) создаёт копию с новым базовым массивом.

Когда нужно

При хранении маленьких подстрок из больших буферов (парсинг файлов, HTTP-заголовки) - иначе в памяти остаётся весь исходный буфер.

big := readHugeFile()
small := big[100:110]  // держит ссылку на big
small = strings.Clone(small)  // теперь small не держит big
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.