To grow a slice, as a programmer you would do:
myslice = append(myslice, value)
myslice = append(myslice, anotherslice...)
Or you can do this my hand, by allocating a new slice of the required size, and copying the elements you want to keep.
I'm sure I read an article which went into detail about the hashing algorithm, and under what conditions the hash grows, but I can't find it now.
The details are of course in the source code: