Для чего в Go используются указатели и где их лучше использовать?
При передаче структуры в функцию showMePerson, структура копируется и внутри функции вы работаете с её копией. При этом, она скорее всего проскакивает через стек и не нагружает сборщик мусора.
При передаче структуры по указателю в функцию showMePerson2 вы работаете с той же структурой, которую передали и можете её менять, например. Но она утекает у вас в кучу, создавая нагрузку на сборщик.
Всё очень хорошо описано в документации.
https://golang.org/doc/effective_go.html#pointers_...