Functions

Functions #

// _Functions_ são centrais em Go. Serão demonstradas
// funções com alguns exemplos diferentes.

package main

import "fmt"

// Aqui está uma função que recebe dois inteiros `int` e retorna a soma de ambos como outro inteiro `int`.
func plus(a int, b int) int {

	// Go exige retornos explícitos. Por exemplo,
	// não será retornado automaticamente o valor
	// da última expressão
	return a + b
}

// Ao existir multiplos parâmetros consecutivos de um
// mesmo tipo, é possível omitir o tipo dos parâmetros
// até a declaração do último parâmetro daquele tipo.
func plusPlus(a, b, c int) int {
	return a + b + c
}

func main() {

	// Para executar uma função é utilizada a
	// sintaxe `nomeDaFuncao(argumentos)`.
	res := plus(1, 2)
	fmt.Println("1+2 =", res)

	res = plusPlus(1, 2, 3)
	fmt.Println("1+2+3 =", res)
}
$ go run functions.go 
1+2 = 3
1+2+3 = 6

# Existem muitos outros recursos em Funções,
# um dos quais é chamado de Retorno de Valores
# Múltiplos que será apresentado no próximo exemplo.