Na linguagem Golang , você pode retornar vários valores de uma função, usando a instrução return. Em outras palavras, em uma função, uma instrução return pode retornar vários valores. Os tipos dos valores de retorno são os mesmos que os tipos dos parâmetros especificados na lista de parâmetros.

Sintaxe:
func function_name(parameter_list)(return_type_list){
// code...
}
Lá dentro:
- function_name : Este é o nome da função.
- parameter-list : Contém os nomes e tipos dos parâmetros da função.
- return_type_list : Opcional e contém os tipos de valores que a função retorna. Se você estiver usando return_type em sua função, então você precisa usar a instrução return em sua função.
Por exemplo:
// Chương trình Go minh họa
// cách hàm trả về nhiều giá trị
package main
import "fmt"
// myfunc trả về 3 giá trị của kiểu int
func myfunc(p, q int)(int, int, int ){
return p - q, p * q, p + q
}
// Phương thức chính
func main() {
// Giá trị trả về được gắn vào
// 3 biến khác nhau
var myvar1, myvar2, myvar3 = myfunc(4, 2)
// Hiện giá trị
fmt.Printf("Result is: %d", myvar1 )
fmt.Printf("\nResult is: %d", myvar2)
fmt.Printf("\nResult is: %d", myvar3)
}
Resultado:
Result is: 2
Result is: 8
Result is: 6
Nomeie o valor de retorno
Na linguagem Go, você tem permissão para fornecer nomes para valores de retorno. E você também pode usar esses nomes de variáveis no seu código. Não há necessidade de escrever esses nomes com uma instrução return porque o compilador Go entenderá automaticamente que essas variáveis devem ser retidas. E o tipo de retorno é chamado de retorno mínimo. Retornar o mínimo reduz a duplicação no seu programa.
Sintaxe:
func function_name(para1, para2 int)(name1 int, name2 int){
// code...
}
hoặc
func function_name(para1, para2 int)(name1, name2 int){
// code...
}
Aqui, name1 e name2 são os nomes do valor de retorno e para1 e para2 são os parâmetros da função.
Por exemplo:
// Minh họa chương trình Go
// cách đặt tên cho giá trị trả về
package main
import "fmt"
// myfunc trả về 2 giá trị của kiểu int
// đây là tên giá trị trả về:
// rectangle và square
func myfunc(p, q int)( rectangle int, square int ){
rectangle = p*q
square = p*p
return
}
func main() {
// Giá trị trả về được gán cho
// hai biến khác nhau
var area1, area2 = myfunc(2, 4)
// Hiện giá trị
fmt.Printf("Area of the rectangle is: %d", area1 )
fmt.Printf("\nArea of the square is: %d", area2)
}
Resultado:
Area of the rectangle is: 8
Area of the square is: 4