Publicado em

Funções em Go

Partilhar:

Introdução

No mundo da programação, funções são blocos de código reutilizáveis que realizam uma tarefa específica. Go, sendo uma linguagem moderna e poderosa, proporciona uma variedade de características relacionadas a funções que a tornam única.

Declarando Funções

Em Go, uma função é declarada usando a palavra-chave func, seguida pelo nome da função, parâmetros (se houver) e o tipo de retorno.

func nomeDaFuncao(parametro1 tipo1, parametro2 tipo2) tipoRetorno {
  // Corpo da função
}

Por exemplo:

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

Retornos Múltiplos

Uma característica interessante de Go é a capacidade de retornar múltiplos valores de uma função.

func divisaoEResto(a int, b int) (int, int) {
  return a / b, a % b
}

Esta função retorna tanto o quociente quanto o resto da divisão.

Funções Anônimas e Closures

Go suporta funções anônimas, que podem formar closures. Funções anônimas são úteis quando se quer definir uma função inline sem nomear-a.

func() {
  fmt.Println("Esta é uma função anônima!")
}()

Um closure é uma função que tem acesso às variáveis do seu ambiente externo:

func contador() func() int {
  conta := 0

  return func() int {
    conta++
    return conta
  }
}

func main() {
  meuContador := contador()
  fmt.Println(meuContador()) // Imprime 1
  fmt.Println(meuContador()) // Imprime 2
}

Parâmetros Variádicos

Go também permite que você use parâmetros variádicos, o que significa que você pode passar um número indefinido de parâmetros para uma função. Eles são definidos usando ... antes do tipo do parâmetro.

func somatorio(numeros ...int) int {
  total := 0

  for _, num := range numeros {
    total += num
  }

  return total
}

Conclusão

As funções em Go são versáteis e poderosas, permitindo aos programadores criar código limpo, eficiente e reutilizável. Seja aproveitando retornos múltiplos, usando closures ou manipulando parâmetros variádicos, dominar funções em Go é essencial para uma programação eficaz.

Happy coding!