Go functions commonly return an error value next to the useful result.

Error Return Values

error_return.go
package main

import (
	"errors"
	"fmt"
)

func divide(total int, parts int) (int, error) {
	if parts == 0 {
		return 0, errors.New("parts cannot be zero")
	}
	return total / parts, nil
}

func main() {
	var parts = 
	result, err := divide(20, parts)

	if err != nil {
		fmt.Println("error=", err)
	} else {
		fmt.Println("result=", result)
	}
}
package main

import (
	"errors"
	"fmt"
)

func divide(total int, parts int) (int, error) {
	if parts == 0 {
		return 0, errors.New("parts cannot be zero")
	}
	return total / parts, nil
}

func main() {
	var parts = 
	result, err := divide(20, parts)

	if err != nil {
		fmt.Println("error=", err)
	} else {
		fmt.Println("result=", result)
	}
}
package main

import (
	"errors"
	"fmt"
)

func divide(total int, parts int) (int, error) {
	if parts == 0 {
		return 0, errors.New("parts cannot be zero")
	}
	return total / parts, nil
}

func main() {
	var parts = 
	result, err := divide(20, parts)

	if err != nil {
		fmt.Println("error=", err)
	} else {
		fmt.Println("result=", result)
	}
}
error return A nil error means the operation succeeded; a non-nil error describes what went wrong.