gobyexample/examples/multiple-return-values/multiple-return-values.go
2022-12-14 19:34:02 +05:30

42 lines
1010 B
Go

// 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 `int`s.
func vals() (int, int) {
return 3, 7
}
// Go's return values may be named. If so, they are treated
// as variables defined at the top of the function.
// A `return“ statement without arguments returns the
// named return values. This is known as a "naked" return.
func split(sum int) (x, y int) {
x = sum * 4 / 9
y = sum - x
return
}
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)
// The split function will return the values of x & y
d, e := split(17)
fmt.Println(d, e)
}