package main
import (
"fmt"
"errors"
)
type Person struct {
Name string
Age int
}
type NewPerson struct {
Name string
Age int
}
func main() {
fmt.Println("未命名多返回值")
result1, remainder1, _ := divAndRemainder(5, 2)
fmt.Printf("result1 = %d remainder1 = %d\n", result1, remainder1)
x1, y1, _ := divAndRemainder(7, 3)
fmt.Printf("x1 = %d y1 = %d\n", x1, y1)
fmt.Println("命名多返回值")
result2, remainder2, _ := divAndRemainder2(5,2)
fmt.Printf("result2 = %d remainder2 = %d\n", result2, remainder2)
x2, y2, _ := divAndRemainder2(7,3)
fmt.Printf("x2 = %d y2 = %d\n", x2, y2)
}
func divAndRemainder(numerator, denominator int)(int, int, error){
if denominator == 0 {
return 0, 0, errors.New("cannot divide by zero")
}
return numerator / denominator, numerator % denominator, nil
}
func divAndRemainder2(numerator, denominator int) (result, remainder int, err error) {
if denominator == 0 {
err = errors.New("cannot divide by zero")
return
}
result, remainder = numerator / denominator, numerator % denominator
return result, remainder, nil
}