Pointers in Go - When to use the ampersand and the asterisk?