English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Golang Tutorial Básico

Golang Comando de Controle

Golang Função & Método

Golang Estrutura

Golang fatia & matriz

Golang String (String)

Golang Ponto

Golang Interface

Golang Concorrência

Golang Exceção (Error)

Outros itens Golang

Função Go Linguagem retorna múltiplos valores

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

Nomear os valores de retorno

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