En el lenguaje Golang , se permite devolver múltiples valores de una función, utilizando la declaración de retorno. En otras palabras, en una función, una declaración de retorno puede devolver múltiples valores. Los tipos de valores de retorno son los mismos que los tipos de parámetros especificados en la lista de parámetros.

Sintaxis:
func function_name(parameter_list)(return_type_list){
// code...
}
Allí dentro:
- function_name : Este es el nombre de la función.
- lista-de-parámetros : Contiene los nombres y tipos de los parámetros de la función.
- return_type_list : Opcional y contiene los tipos de valores que devuelve la función. Si está utilizando return_type en su función, entonces necesita utilizar la declaración de retorno en su función.
Por ejemplo:
// 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
Nombra el valor de retorno
En el lenguaje Go, se permite proporcionar nombres para los valores de retorno. También puedes usar esos nombres de variables en tu código. No es necesario escribir estos nombres con una declaración de retorno porque el compilador Go entenderá automáticamente que estas variables deben conservarse. Y el tipo de retorno se llama retorno mínimo. Devolver un mínimo reduce la duplicación en su programa.
Sintaxis:
func function_name(para1, para2 int)(name1 int, name2 int){
// code...
}
hoặc
func function_name(para1, para2 int)(name1, name2 int){
// code...
}
Aquí, name1 y name2 son los nombres del valor de retorno y para1 y para2 son los parámetros de la función.
Por ejemplo:
// 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