Получи случайную криптовалюту за регистрацию!

'Какой размер массива выделяется под слайс при его расширении | Golang вопросы собеседований

"Какой размер массива выделяется под слайс при его расширении за рамки его емкости?"

Если отвечать на вопрос поверхностно, то можно сказать, что базовый массив расширяется в два раза от нашей capacity.

Отвечая более емко, следует учесть, что при больших значениях расширение будет не в два раза и будет вычисляться по специальной формуле.

Если развернуть ответ полностью, то это будет звучать примерно так:

если требуемая cap больше чем вдвое исходной cap, то новая cap будет равна требуемой;

если это условие не выполнено, а также len текущего слайса меньше 1024, то новая cap будет в два раза больше базовой cap;

если первое и второе условия не выполнены, то емкость будет увеличиваться в цикле на четверть от базовой емкости пока не будет обработано переполнение. Посмотреть эти условия более подробно можно в исходниках go.

@golang_interview