/** 测试golang slice扩展长度的规则 结论, slice cap空间够的时候,cap不变,cap不够的时候,会乘2. */ package main import "fmt" func main() { var ary = make([]int, 1, 1) ary[0] = 1 fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary)) ary = append(ary, 2) fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary)) ary = append(ary, 3) fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary)) ary = append(ary, 4) fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary)) ary = append(ary, 5) fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary)) }