MST

星途 面试题库

面试题:Go中如何自定义基础的error类型

在Go语言中,描述如何自定义一个简单的error类型,并通过一个函数返回这个自定义的error。例如,假设我们有一个函数用于检查一个整数是否为偶数,如果不是偶数则返回自定义的error。请写出相关代码实现。
48.0万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "fmt"
)

// 自定义error类型
type NotEvenError struct {
    Num int
}

func (n NotEvenError) Error() string {
    return fmt.Sprintf("%d 不是偶数", n.Num)
}

// 检查整数是否为偶数的函数
func CheckEven(num int) error {
    if num%2 != 0 {
        return NotEvenError{Num: num}
    }
    return nil
}

你可以这样调用这个函数:

func main() {
    num := 5
    err := CheckEven(num)
    if err != nil {
        fmt.Println(err)
    } else {
        fmt.Printf("%d 是偶数\n", num)
    }
}