Тест · урок 2 из 3Тест — рост срезаКак растёт срез, когда append превышает его ёмкость (cap) в Go?[A]Когда append превышает cap, рост всегда удваивает ёмкость независимо от размера среза, а элементы не копируются — старый и новый backing array связаны ссылкой, и чтения прозрачно проваливаются в старый массив.[B]Когда append превышает cap, runtime расширяет существующий backing array на месте, запрашивая соседнюю память у аллокатора, поэтому указатель среза не меняется, и другие срезы, разделяющие этот массив, тоже видят новые элементы.[C]Когда append требует больше места, чем cap, runtime выделяет новый, больший backing array, копирует туда существующие элементы и возвращает новый заголовок на него. Ёмкость примерно удваивается для небольших срезов и растёт с меньшим коэффициентом (около 1.25x) для больших.[D]Когда append превышает cap, runtime выделяет новый backing array ровно на один элемент больше старой длины, копирует туда элементы и возвращает новый заголовок — поэтому после каждого роста ёмкость всегда в точности равна длине.← НазадУстройство срезаДальше →Практика — слияние интервалов