freeCodeCamp/guide/portuguese/go/functions/index.md

2.3 KiB
Raw Blame History

title localeTitle
Go Functions Ir funções

Ir funções

Uma função recebe zero ou mais parâmetros de qualquer tipo, faz alguma lógica com eles e pode retornar um ou mais valores. A sintaxe da função de Golang é:

func sum(parameter1 int64, parameter2 int64) int64 { 
  return parameter1+parameter2 
 } 

Aqui, o nome da função é add . Leva para parâmetros, parameter1 e parameter2 do tipo int64 e retorna outro int64, a soma dos dois parâmetros.

Retorna

Depois que um return é atingido, a função sai sem executar mais código.

func sum(parameter1 int64, parameter2 int64) int64 { 
  return parameter1+parameter2 
  // Unreachable code 
  fmt.Printf("Don't print me") 
 } 

Chamando uma função

A função acima seria chamada assim:

sum(4, 5) 

O valor dessa expressão é 9.

Omitir tipo de parâmetro

Se dois ou mais parâmetros consecutivos forem do mesmo tipo, pode ser indicado apenas uma vez.

function foo(x, y, z int64, name string) { 
  fmt.Printf("%d %d %d %s", x, y, z, name) 
 } 

Aqui x , y e z são do tipo int64 e name é uma string.

Retornando vários valores

Uma função pode retornar zero ou mais valores. Para não retornar nada, omita o tipo de retorno:

function helloWorld() { 
  fmt.Printf("Hello world!") 
 } 

Para retornar um valor, especifique seu tipo:

function getHelloWorld() string { 
  return "Hello world!" 
 } 

Para retornar mais de um valor, especifique seus tipos, envolvidos em () e separados por vírgulas:

function getHelloWorldAndBestLanguage() (string, string) { 
  return "Hello world!", "Golang" 
 } 

Para receber esses valores, simplesmente declare as variáveis separadas por vírgulas da seguinte forma:

helloWorld, bestLanguage := getHelloWorldAndBestLanguage() 
 // helloWorld == "Hello world!" 
 // bestLanguage == "Golang" 

Retornos nuas

Você pode nomear os tipos de retorno para que você não precise passar a variável para a declaração de retorno:

func duplicate(s string) (first, second string) { 
  first = s 
  last = s 
    return 
 } 
 
 func main() { 
    fmt.Println(split("Hello world!")) // ("Hello world!", "Hello world!") 
 } 

Mais Informações:

https://tour.golang.org/basics/4