Para que uma função retorne mais de uma valor, precisamos especificar quais tipos de
dados desejamos retornar. Esses devem estar entre ( e ) e separados por (,).
O comando return deve ser usado apenas uma vez separando cada valor retornado.
Sintaxe
func nome_funcao( <lista_parametros> ) (tipo_retorno1, tipo_retornoN,...){
//corpo
return valor1,valorN
}
Onde
tipo_retorno1...N: Tipo de dado que será retornado pela função. Primitivo ou não
return: Comando para retornar um valor de uma função
<lista_parametros>: lista de parâmetros separados por (,)
A linguagem Go permite a associação de uma nome a um tipo de retorno de uma função
como pode ser visto na sintaxe abaixo. Dessa forma, são criadas variáveis locais nas
quais podemos atribuir seus respectivos valores de retorno que posteriormente
são retornadas automaticamente ao utilizarmos o comando return apenas.
Sintaxe
func nome_funcao( <lista_parametros> ) ( nome_ret1 tipo_ret1, nome_ret2 tipo_retN,...){
//corpo
return
}
Onde
<lista_parametros>: lista de parâmetros separados por (,)
nome_ret1..N: Nome das variáveis para retorno
tipo_ret1..N: tipo de dado do retorno da função
Exemplo 10
func funcao(valor int) (dobro int,triplo int) {
dobro = valor*2
triplo = valor*3
return //dobro, triplo não necessários
}
func main() {
var valor,valor2 = funcao(10)
fmt.Printf("Val: %d %d",valor,valor2)
}
Saída
dobro:20 triplo:30