2.3 KiB
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!")
}