{
newcap = newLen
}
линк: https://github.com/golang/go/blob/352c8835e7609ad72872b5a63bffeb6142b29d98/src/runtime/slice.go#L264C3-L264C3
судя из исходников, если новая длина больше чем дабл кап, то новый кап будет равен новой длине, но
b := []int{0} // cap: 1, len: 1
b = append(b, 1, 2, 3, 4)
b // cap: 6, len: 5
новый капасити на 1 больше чем новая длина, почему так?
запустить: https://goplay.space/#9KddwrGXu_5
Он потом еще выравнивает
Обсуждают сегодня