In Golang, we can return multiple values at a time from a single function. Multiple return values can be achieved by changing the return type of the function in the function signature.
Syntax :
func value( ) ( int , int ) { return 1 , 0 ; }
The (int, int) in this function signature explains that the return type is two integers. Thus we have to use multiple assignments while calling this function. This feature is also used to return both results and error from a function. If you want a subset of the returned values, use the blank identifier _.
Example 1: Finding max and min of two elements, using this feature :
package main
import "fmt"
// declaring a function // having return type // of int, int func maxmin(a int, b int) (int, int) {
if a > b {
// separate multiple return
// values using comma
return a, b
} else {
return b, a
}
// this function returns
// maximum , minimum values
} func main() {
// declaring two values a and b
var a = 50
var b = 70
// calling the function
// with multiple assignments
var max, min = maxmin(a, b)
// Printing the values
fmt.Println( "Max = " , max, "\nMin = " , min)
} |
Output :
Max = 70 Min = 50
Example 2: Finding the sum and difference of two numbers, using this feature of multiple return values.
package main
import "fmt"
// declaring a function having // return type of int, int func sumDiff(a int, b int) (int, int) {
return (a + b), (a - b)
// this function returns sum ,
// difference of the two numbers
} func main() {
// declaring two values a and b
var a = 68
var b = 100
// calling the function
// with multiple assignments
var sum, diff = sumDiff(a, b)
// Printing the values
fmt.Println( "Sum = " , sum, "\nDifference = " , diff)
} |
Output :
Sum = 168 Difference = -32