面试题答案
一键面试package main
import (
"errors"
"fmt"
)
// 定义自定义错误类型
type AgeError struct {
Age int
}
func (ae AgeError) Error() string {
return fmt.Sprintf("年龄 %d 不符合要求,年龄应该在18到60岁之间", ae.Age)
}
// 检查年龄的函数
func CheckAge(age int) error {
if age < 18 || age > 60 {
return AgeError{Age: age}
}
return nil
}
你可以使用以下方式调用这个函数:
func main() {
age := 10
err := CheckAge(age)
if err != nil {
if ae, ok := err.(AgeError); ok {
fmt.Println(ae.Error())
} else {
fmt.Println("其他错误:", err)
}
} else {
fmt.Println("年龄符合要求")
}
}