package main
import "fmt"
func main() {
s := []int{10, 11, 12, 13}
fmt.Printf("&s[0]: %p, cap(s): %d\n", &s[0], cap(s))
fmt.Printf("s: %#v\n", s)
i := 1 // index of 11
n := 2 // remove 2 elements
s = append(s[:i], s[i+n:]...)
fmt.Print("\nAfter removal:\n")
fmt.Printf("&s[0]: %p, cap(s): %d\n", &s[0], cap(s))
fmt.Printf("s: %#v\n", s)
s = append(s, 1, 2, 3, 4)
fmt.Printf("\nAfter appending beyond remaining capacity:\n")
fmt.Printf("&s[0]: %p, cap(s): %d\n", &s[0], cap(s))
fmt.Printf("s: %#v\n", s)
}