1
resposta

[Dúvida] Quando utilizar o ponteiro?

Durante o curso, realizamos duas validações que ficaram centralizadas no service: ValidatePizzaPrice e ValidateReviewRating. Na primeira, referência o tipo do valor que seria recebido utilizando ponteiro ( * ) e na segunda não. Quando utilizar o ponteiro?

1 resposta

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:

  1. 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.

  2. 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.

  3. 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 ✓.