Fundamentos e assinaturas de funções
Parâmetros, tipos de retorno e convenções de chamada
Fundamentos e assinaturas de funções é uma aula grátis de Go Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Go Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Go Academy inclui 4 aulas no total.
Definição de uma função
Em Go, as funções são definidas com a palavra-chave func:
func greet(name string) string {
return "Hello, " + name
}Parâmetros e argumentos
Os parâmetros têm tipos e são listados como pares name type. Vários parâmetros do mesmo tipo podem compartilhar a anotação de tipo:
func add(x, y int) int {
return x + y
}
func rect(w, h float64) float64 {
return w * h
}Funções sem retorno
As funções que não retornam um valor simplesmente omitem o tipo de retorno. Elas retornam implicitamente quando a execução chega ao final:
func printBanner(title string) {
fmt.Println("=====", title, "======")
}Chamando funções
Chame uma função pelo nome, usando parênteses e os argumentos correspondentes:
result := add(3, 4) // 7
fmt.Println(greet("Go")) // Hello, Go
printBanner("Welcome")Funções como valores de primeira classe
As funções são valores de primeira classe em Go — podem ser atribuídas a variáveis e passadas como argumentos:
apply := func(n int, f func(int) int) int {
return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10Tipos de função
Você pode definir tipos de função nomeados para obter assinaturas mais claras:
type Transform func(int) int
func applyAll(n int, fns []Transform) int {
for _, f := range fns {
n = f(n)
}
return n
}Funções recursivas
Go oferece suporte à recursão. Tenha cuidado com a profundidade da pilha — as pilhas das goroutines do Go crescem dinamicamente, mas a recursão sem limite ainda causa estouro de pilha:
func factorial(n int) int {
if n <= 1 {
return 1
}
return n * factorial(n-1)
}Convenções de nomenclatura de funções
Convenções de nomenclatura de funções em Go:
- Use
MixedCaps(exportado) oumixedCaps(não exportado) - Prefira nomes curtos e orientados a ações:
New,Get,Parse,Write - Evite
GetXpara acessadores simples — use apenasX - Predicados booleanos:
IsValid,HasPrefix
Função init()
Uma função especial init() é executada automaticamente quando o pacote é carregado, antes de main():
- Não recebe argumentos e não retorna nada
- Um pacote pode ter várias funções init()
- Use-a para configurações executadas uma única vez, como registrar controladores
Função versus método
Uma função não está associada a nenhum tipo. Um método tem um receptor (abordado em Estruturas e métodos). Ambos usam a palavra-chave func:
// Function
func max(a, b int) int { ... }
// Method
func (c Counter) Value() int { ... }Verificação rápida
Em Go, uma função pode retornar vários valores?
Recapitulação: fundamentos das funções
As funções do Go são expressivas e flexíveis:
func name(params) returnType { }- Parâmetros do mesmo tipo podem compartilhar a anotação de tipo
- As funções são valores de primeira classe
- Defina tipos de função para obter assinaturas reutilizáveis
- Há suporte à recursão; init() é executada quando o pacote é carregado
Próximo: múltiplos valores de retorno em detalhes.
Perguntas Frequentes
A aula “Fundamentos e assinaturas de funções” é grátis?
Sim — o texto completo de “Fundamentos e assinaturas de funções” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Go Academy, atualize para CoddyKit PRO. O curso de Go Academy inclui 4 aulas no total.
O que vou aprender em “Fundamentos e assinaturas de funções”?
Parâmetros, tipos de retorno e convenções de chamada Você pratica Go Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Go Academy?
Nenhuma experiência prévia é necessária. Go Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Fundamentos e assinaturas de funções”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Go Academy?
Sim. Cada aula de Go Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Fundamentos e assinaturas de funções
- Vários valores de retorno
- Funções variádicas
- defer, funções anônimas e closures