In Golang, one of the confusing part is value type and reference type.
Value type: int, float, string, bool, structs
Reference type: slides, maps, channels, pointers, functions
You need to use pointers to change value type in a function. But you dont have to worry about pointer for reference type.