Looking Inside a Slice
The first thing to realize is that a slice in Go is really just a struct
that wraps "header" information about (1) a pointer to the "real" underlying
data, (2) the length and (3) the capacity without directly exposing those
fields. We can use a struct …