Емкость среза в Go
Емкость показывает, сколько элементов помещается без нового куска памяти. Ее дает встроенная команда cap. Длина может быть меньше емкости: часть места ждет будущих добавлений в конец.
nums := []int{10, 20, 30}
fmt.Println(len(nums), cap(nums))
hold := make([]int, 0, 4)
fmt.Println(len(hold), cap(hold))
У литерала из трех чисел длина и емкость совпадают. У среза, созданного с нулевой длиной и запасом, емкость больше длины:
Первые числа: 3 и 3. У hold будет 0 и 4. Емкость не равна числу видимых элементов, пока резерв не заполнен.
Дан следующий срез:
nums := []int{10, 20, 30}
Выведите длину и емкость в одной строке.
Создайте через make срез с нулевой длиной и емкостью четыре в slot и выведите емкость.
Скажите, может ли емкость быть больше длины у непустого среза.