In Golang language , you are allowed to return multiple values from a function, using the return statement. In other words, in a function, a return statement can return multiple values. The type of the returned values is similar to the type of the parameter specified in the parameter list.

Syntax:
func function_name(parameter_list)(return_type_list){
// code...
}
In there:
- function_name : This is the name of the function.
- parameter-list : Contains the names and types of the function parameters.
- return_type_list : Optional and contains the types of values that the function returns. If you are using return_type in your function, then you need to use the return statement in your function.
For example:
// 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)
}
Result:
Result is: 2
Result is: 8
Result is: 6
Name the return value
In Go language, you are allowed to provide names for return values. And you can also use those variable names in your code. There is no need to write these names with return statement because Go compiler will automatically understand that these variables should be retained. And the return type is called minimal return. Minimal return reduces duplication in your program.
Syntax:
func function_name(para1, para2 int)(name1 int, name2 int){
// code...
}
hoặc
func function_name(para1, para2 int)(name1, name2 int){
// code...
}
Here, name1 and name2 are the names of the return value and para1 and para2 are the parameters of the function.
For example:
// 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)
}
Result:
Area of the rectangle is: 8
Area of the square is: 4