package main
import (
"errors"
"fmt"
)
// Classic — two return values, no names
func divide(a, b float64) (float64, error) {
if b == 0 {
return 0, errors.New("divide by zero")
}
return a / b, nil
}
// Named returns — values are zero-initialized, can be modified, naked return ok
func divmod(a, b int) (quot, rem int, err error) {
if b == 0 {
err = errors.New("divide by zero")
return // naked return — uses named values
}
quot = a / b
rem = a % b
return
}
func main() {
if v, err := divide(10, 3); err == nil {
fmt.Printf("10/3 = %.2f\n", v)
}
q, r, _ := divmod(17, 5)
fmt.Printf("17 = %d*5 + %d\n", q, r)
}
Create a free account and build your private vault. Share publicly whenever you want.