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(param1 tipo_param1, paramN tipo_paramN) (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
valor1...N: um ou mais valores retornados
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(param1 tipo_param1, paramN tipo_paramN) (nome_retorno1 tipo_retorno1, nome_retorno2 tipo_retornoN,...){
//corpo
return
}
Onde
tipo_dado: tipo de dado do parâmetro
param1..N: lista de parâmetros separados por vírgula
nome_retorno1..N: Nome das variáveis para retorno
tipo_param1..N: tipo de dado do parâmetro
tipo_retorno1..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