fork(1) download
  1. package main
  2. import "fmt"
  3.  
  4. func main(){
  5. original := make([]int, 0, 5)
  6. fmt.Println("orig cap:", cap(original)) // 5
  7. fmt.Println("orig len:", len(original)) // 0
  8.  
  9. original = append(original, 0)
  10. original = append(original, 1)
  11. original = append(original, 2)
  12. fmt.Println("orig cap:", cap(original)) // 5
  13. fmt.Println("orig len:", len(original)) // 3
  14.  
  15. slice := original[1:]
  16. fmt.Println("slice cap:", cap(slice)) // 4
  17. fmt.Println("slice len:", len(slice)) // 2
  18. original[0]++
  19. slice[0]++
  20. slice[1]++
  21. fmt.Println("orig:", original) // [1, 2, 3]
  22.  
  23. slice = append(slice, 4)
  24. fmt.Println("orig cap:", cap(original)) //
  25. fmt.Println("orig len:", len(original)) //
  26. fmt.Println("slice cap:", cap(slice)) //
  27. fmt.Println("slice len:", len(slice)) //
  28. fmt.Println("slice:", slice) // [, , ]
  29.  
  30. original = append(original, -1)
  31. fmt.Println("orig:", original) // [, , ]
  32. fmt.Println("slice:", slice) // [, , ]
  33. }
Success #stdin #stdout 0s 420672KB
stdin
Standard input is empty
stdout
orig cap: 5
orig len: 0
orig cap: 5
orig len: 3
slice cap: 4
slice len: 2
orig: [1 2 3]
orig cap: 5
orig len: 3
slice cap: 4
slice len: 3
slice: [2 3 4]
orig: [1 2 3 -1]
slice: [2 3 -1]