Hoje vamos abordar um tema muito interessante e que é comum a quase todas as linguagens, valor vs referência (também conhecida como ponteiro).
Primeiramente, não podemos nos esquecer que, cada variável que criamos, independente do seu tipo, assim como arrays, slices e maps, são espaços alocados em memória.
Outro ponto importante que temos que ter em mente é que, os parâmetros de uma função também são variáveis.
Para ajudar na explicação, vamos criar uma função com 2 parâmetros, onde o primeiro espera um valor e o segundo um ponteiro.
func ValPoint(valor string, ponteiro *string) { fmt.Println(valor) fmt.Println(ponteiro) }Leia mais »