Olá Isabela! Tudo bem?
Essa é uma ótima pergunta e entender quando usar ponteiros em Go pode realmente otimizar o desempenho e a eficiência do seu código. Em Go, você deve considerar usar ponteiros em algumas situações específicas:
Eficiência de Memória: Quando você está lidando com grandes estruturas de dados, passar uma cópia delas para funções pode ser custoso em termos de memória. Usar um ponteiro permite que você passe a referência para a estrutura em vez de uma cópia completa, economizando memória.
Exemplo: Imagine que você tem uma estrutura Pizza
com muitos campos. Passar um ponteiro para essa estrutura em uma função que valida o preço pode ser mais eficiente.
Modificação de Valores: Se a função precisa modificar o valor do argumento passado, você deve usar um ponteiro. Isso porque, em Go, os argumentos são passados por valor, o que significa que a função recebe uma cópia do argumento. Com um ponteiro, a função pode modificar o valor original.
Exemplo: Se ValidatePizzaPrice
precisa ajustar o preço da pizza baseado em algumas regras, usar um ponteiro permitirá que essas alterações sejam refletidas fora da função.
Consistência de API: Às vezes, você pode querer manter a consistência em sua API. Se outras funções já usam ponteiros para tipos semelhantes, pode ser sensato continuar usando ponteiros para manter a consistência.
No caso do seu curso, a escolha entre usar ou não ponteiros pode ter sido baseada em um desses fatores. Se ValidatePizzaPrice
precisa modificar o valor ou está lidando com uma estrutura grande, faz sentido usar um ponteiro. Já ValidateReviewRating
pode não precisar dessas características, então um valor direto pode ser suficiente.
Espero ter ajudado e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.