Functions that can fail return an error as the last value:
func divide(a, b int) (int, error) {
if b == 0 {
return 0, errors.New("division by zero")
}
return a / b, nil
}
Return nil when successful, a non-nil error when something fails. This pattern appears everywhere in Go code.