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