English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
No Go linguagem, permite usar a instrução return para retornar defunçãoretornam múltiplos valores. Em outras palavras, em uma função, uma instrução return pode retornar múltiplos valores. O tipo dos valores de retorno é semelhante ao tipo dos parâmetros definidos na lista de parâmetros.
Sintaxe:
func function_name(parameter_list)(return_type_list){ // code... }
aqui,
function_name:éfunçãodo nome.
parameter-list:contém os nomes e tipos dos parâmetros da função.
return_type_list:é opcional, e contém os tipos dos valores retornados pela função. Se usar return_type, deve usar a instrução return no corpo da função.
package main import "fmt" // myfunc retorna3valores do tipo int func myfunc(p, q int) (int, int, int) { return p - q, p * q, p + q } func main() { //que atribui o valor de retorno a três variáveis diferentes var myvar1, myvar2, myvar3 = myfunc(4, 2) // mostra o valor fmt.Printf("O resultado é: %d", myvar)1) fmt.Printf("\nO resultado é: %d", myvar)2) fmt.Printf("\nO resultado é: %d", myvar)3) }
Saída:
O resultado é: 2 O resultado é: 8 O resultado é: 6
No Go, é permitido nomear os valores de retorno. Você também pode usar esses nomes nas variáveis no código. Não é necessário usar a palavra-chave return para esses nomes, pois o compilador do Go automaticamente entenderá que esses valores precisam ser atribuídos de volta. Este tipo de retorno é chamado de retorno nu. O retorno simples reduz a repetição no código.
Sintaxe:
func function_name(para1, para2 int)(name1 int, name2 int){ // code... } ou func function_name(para1, para2 int)(name1, name2 int){ // code... }
aqui,name1ename2são os nomes dos valores de retorno, enquanto para1e para2são os parâmetros da função.
package main import "fmt" // myfunc retorna2valores do tipo int //aqui estão os nomes dos valores de retorno //é rectangle e square func myfunc(p, q int) (rectangle int, square int) { rectangle = p * q square = p * p return } func main() { //que retornam valores //duas variáveis diferentes var area1, area2 = myfunc(2, 4) fmt.Printf("Área do retângulo: %d", area)1) fmt.Printf("\nÁrea do quadrado: %d", area)2) }
Saída:
Área do Retângulo é: 8 Área do Quadrado é: 4