50 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: Go Functions | ||
|  | localeTitle: Ir funções | ||
|  | --- | ||
|  | ## Ir funções
 | ||
|  | 
 | ||
|  | Uma função é um bloco de código que executa uma tarefa quando é chamado, de modo que o nome da função a identifica e é usado para chamar a função. | ||
|  | 
 | ||
|  | A declaração de uma função começa com a palavra-chave `func` seguida pelo nome da função e depois os argumentos da função e finalmente os tipos de valores retornados. A declaração liga o nome da função à função. Tenha em mente que o tipo vem depois do nome da variável nos argumentos e nos valores retornados. Um exemplo de declaração de uma função é o seguinte | ||
|  | 
 | ||
|  | ```go | ||
|  | func add(a int, b int) int  | ||
|  | ``` | ||
|  | 
 | ||
|  | Uma função pode ter 0 ou muitos argumentos, dependendo de sua funcionalidade desejada | ||
|  | 
 | ||
|  | ```go | ||
|  | func zero() int { /* Function Definition */ }  | ||
|  |  func increment(x int) int { /* Function Definition */ }  | ||
|  |  func add(x, y int) int { /* Function Definition */ }  | ||
|  | ``` | ||
|  | 
 | ||
|  | Go suporta o retorno de vários valores. A função abaixo retorna 2 valores: a soma dos 2 argumentos e a diferença entre o primeiro e o segundo argumento | ||
|  | 
 | ||
|  | ```go | ||
|  | func addAndSubtract(x, y int) (int, int) {  | ||
|  |   return x + y, x - y  | ||
|  |  }  | ||
|  |   | ||
|  |  addAndSubtract(7, 4) // Returns 11, 3  | ||
|  | ``` | ||
|  | 
 | ||
|  | Go também suporta nomear os valores retornados | ||
|  | 
 | ||
|  | ```go | ||
|  | func mulitplyByThreeAndDivideByFive(x int) (product int, quotient int) {  | ||
|  |     product = x * 3  | ||
|  |     quotient = x / 5  | ||
|  |     return  | ||
|  |  }  | ||
|  |   | ||
|  |  mulitplyByThreeAndDivideByFive(20) // Returns 60, 4  | ||
|  | ``` | ||
|  | 
 | ||
|  | #### Mais Informações:
 | ||
|  | 
 | ||
|  | *   [Um passeio de ir](https://tour.golang.org/basics/4) | ||
|  | *   [Vá pelo exemplo](https://gobyexample.com/functions) | ||
|  | *   [Livro Golang](https://www.golang-book.com/books/intro/7) | ||
|  | *   [A especificação da linguagem de programação Go](https://golang.org/ref/spec#Function_declarations) |