MST

星途 面试题库

面试题:Go中如何自定义基础错误类型

在Go语言中,要求你编写一个自定义错误类型,用于表示用户输入的年龄不符合要求(年龄应该在18到60岁之间)。请给出具体代码实现,并展示如何在函数中返回这个自定义错误。
30.1万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
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("年龄符合要求")
    }
}