A função nada mais é que um conjunto de ações que um determinado programa deve executar. Em Go podemos ter funções com zero ou mais argumentos.
Sintaxe:
func nome_funcao(variavel_entrada_1,variavel_entrada_n) retorno{
corpo_da_função
}
Onde:
- func - Palavra chave para identificar uma função.
- nome_funcao - Nome da função.
- variavel_entrada_1,variavel_entrada_n - Argumentos da função, pode ter um ou mais.
- retorno - Retorno da função, pode ter um ou mais ao mesmo tempo.
- corpo_da_função - Informações e medidas que serão tomadas na função.
Exemplo 1 - Nesse exemplo é possível ver uma função sum(x int, y int) que recebe dois valores int e devolve um int como retorno.
package main
import "fmt"
//Função que soma x e y
func sum(x int, y int) int{
return x+y;
}
func main() {
fmt.Println("Soma 2+3=",sum(2,3))
}
Abaixo é possível ver a execução do programa acima.
Exemplo 2 - É possível passar dois argumentos consecutivos, desde que os dois sejam do mesmo tipo abaixo é possível ver esse caso na função sum(x, y int) que recebe dois valores int e devolve um int como retorno.
package main
import "fmt"
//Função que soma x e y
func sum(x, y int) int{
return x+y;
}
func main() {
fmt.Println("Soma 2+3=",sum(2,3))
}
Funções com multiplos resultados
Em Go é possível que uma função retorne vários resutados ao mesmo tempo, para isso basta utilizar a sintaxe abaixo:
Sintaxe:
func nome_funcao(variavel_entrada_1,variavel_entrada_n) (retorno1,retorno2,retornon){
corpo_da_função
}
Onde:
- func - Palavra chave para identificar uma função.
- nome_funcao - Nome da função.
- variavel_entrada_1,variavel_entrada_n - Argumentos da função, pode ter um ou mais.
- retorno1,retorno2,retornon- Retornos da função, vale lembrar que pode ser mais que três retornos.
- corpo_da_função - Informações e medidas que serão tomadas na função.
Exemplo 3 - Nesse exemplo é possível ver uma função sum(x int, y int) que recebe dois valores int e devolve dois int como retorno.
package main
import "fmt"
//Função que retorna multiplos valores
func sumEsubtracao(x int, y int) (int,int){
return x+y, x-y;
}
func main() {
soma,sub:=sumEsubtracao(2,3)
fmt.Println("Soma 2+3=",soma," e a subtração é 2-3=",sub)
}
As funções com múltiplos retornos também podem especificar quais variáveis retornar.
Exemplo 4 - Nesse exemplo é possível ver uma função sum(x int, y int) que recebe dois valores int e devolve dois int como retorno através de um retorno naked (retorno onde não te uma variável de retorno após a palavra chave return)
package main
import "fmt"
//Função que retorna multiplos valores
func sumEsubtracao(x int, y int) (soma,sub int){
soma=x+y
sub=x-y
return
}
func main() {
soma,sub:=sumEsubtracao(2,3)
fmt.Println("Soma 2+3=",soma," e a subtração é 2-3=",sub)
}