You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

34 lines
661 B

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)
}