Multiple Return Values

Go has built-in support for multiple return values. This feature is used often in idiomatic Go, for example to return both result and error values from a function.

package main

import "fmt"

// The (int, int) in this function signature
// shows that the function returns 2 ints.
func vals() (int, int) {
    return 3, 7
}

func main() {

    // Here we use the 2 different return values
    // from the call with multiple assignment.
    a, b := vals()
    fmt.Println(a)
    fmt.Println(b)

    // If you only want a subset of the returned values
    // use the blank identifier _.
    _, c := vals()
    fmt.Println(c)
}

Accepting a variable number of arguments is another nice feature of Go functions; we’ll look at this next.

$ go run multiple-return-values.go
3
7
7
Source | License