0Pricing
Go Academy · Aula

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)) // 10

Tipos 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) ou mixedCaps (não exportado)
  • Prefira nomes curtos e orientados a ações: New, Get, Parse, Write
  • Evite GetX para acessadores simples — use apenas X
  • 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

  1. Fundamentos e assinaturas de funções
  2. Vários valores de retorno
  3. Funções variádicas
  4. defer, funções anônimas e closures
← Voltar para Go Academy