Visibilidade de funções e variáveis

Pelo Go ser uma linguagem case-sensitive, a nomenclatura é muito importante.

Função exportada (funções públicas)

Definição

A 1º letra do nome da função em maiúsculo.

Exemplo

func Soma(a int, b int) int {
  return a + b
}

OBS

É uma boa prática documentar as função exportadas.

// Soma <descrição sucinta sobre o que ela faz>
func Soma(a int, b int) int {
  return a + b
}

Função não exportada (funções privadas)

Definição

A 1º letra do nome da função em minúsculo.

Exemplo

func soma(a int, b int) int {
  return a + b
}

Variável / atributo / type

A regra de nomenclatura das funções é valida também para os métodos (funções de objeto), type, variáveis e atributos.