main.go 656 B

123456789101112131415161718192021222324252627
  1. /**
  2. 测试golang slice扩展长度的规则
  3. 结论, slice cap空间够的时候,cap不变,cap不够的时候,会乘2.
  4. */
  5. package main
  6. import "fmt"
  7. func main() {
  8. var ary = make([]int, 1, 1)
  9. ary[0] = 1
  10. fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
  11. ary = append(ary, 2)
  12. fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
  13. ary = append(ary, 3)
  14. fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
  15. ary = append(ary, 4)
  16. fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
  17. ary = append(ary, 5)
  18. fmt.Printf("value: %v, len: %v, cap: %v\n", ary, len(ary), cap(ary))
  19. }