Go
Beginner
1 min read
Function Basics and Multiple Return Values
Example
package main
import (
"errors"
"fmt"
"strings"
)
// Multiple return values — result and error
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
// Named return values
func minMax(nums []int) (min, max int) {
min, max = nums[0], nums[0]
for _, n := range nums[1:] {
if n < min { min = n }
if n > max { max = n }
}
return // bare return uses named values
}
// Variadic function
func join(sep string, words ...string) string {
return strings.Join(words, sep)
}
func main() {
result, err := divide(10, 3)
if err != nil {
fmt.Println("error:", err)
} else {
fmt.Printf("10 / 3 = %.4f\n", result)
}
_, err = divide(5, 0)
fmt.Println("divide by zero:", err)
lo, hi := minMax([]int{3, 1, 4, 1, 5, 9, 2, 6})
fmt.Printf("min=%d max=%d\n", lo, hi)
fmt.Println(join(", ", "Go", "is", "great"))
}