Как определено в этом https://golang.org/doc/faq#methods_on_values_or_pointers
, если вы изменяете данные в структуре или обрабатываете огромные объемы данных или если ваша структура очень велика, лучше использовать указатель.
Как и в приведенных выше случаях, если вы передаете его по значению, это имеет значение, так как при каждом вызове функции вы передаете новую копию структуры, которая может повлиять на эффективность вашего приложения.
для очень маленьких данных передача их по значению или указателю не будет иметь значения, поскольку разница будет незначительной (как в вашем примере это не будет иметь значения) https://play.golang.org/p/t3_Xzhq88g-
если вы выбираете способ вызова функции, все остальные функции также должны быть вызваны аналогичным образом.
поэтому проанализируйте ваш вариант использования (это несколько наводящих на размышления сценариев использования, возможно, будет больше сценария ios)
1) вы собираетесь изменить данные в структуре
2 ) данные будут огромными
3) или если структура будет огромной
4) вы будете возвращать измененные значения (как в вашем примере)
и на основе этих данных вы можете использовать указатель или передаваемое значение