package trading import ( "fmt" "testing" ) func TestSliceCap(t *testing.T) { Max, MaxCap := 1000, 1280 _ = MaxCap var arr []int prevCap := cap(arr) for i := range 1600 { ele := i if len(arr) < MaxCap { arr = append(arr, ele) } else { length := len(arr) copy(arr, arr[length-Max+1:]) arr[Max-1] = ele arr = arr[:Max] fmt.Printf("move=%d, %d, arr=(%d~%d)\n", i, len(arr), arr[0], arr[len(arr)-1]) } c := cap(arr) if c != prevCap { // 发生扩容 prevCap = c fmt.Printf("i=%d, cap=%d, len=%d\n", i, c, len(arr)) } } fmt.Println("----------------------------------------------------------") fmt.Println(arr) }