Arrays, slices (and strings): The mechanics of 'append' - The Go Programming Language
How Go arrays and slices work, and how to use copy and append.