[GO]errorr接口的使用

package main

import (
    "fmt"
    "errors"
)

func main() {
    erro1 := fmt.Errorf("%s", "this is a nomal erorr")
    fmt.Println("error1 = ", erro1)
    error2 := errors.New("this is a normal error")
    fmt.Println("eror2 = ", error2)
}

这里打印的结果就很简单了,就是打印了两行的this sis a normal error

但是这里需要强调的是error里的New方法,可以看看源码

通过源码我们可以学习到一个规范的接口是怎么写成的

package main

import (
    "errors"
    "fmt"
)

func MyDiv(a, b int) (result int, err error) { //这里定义了err为error的接口类型
    err = nil
    if b == 0 {
        err = errors.New("分母不能为0")
    }else {
        result = a / b
    }
    return
}

func main() {
    result, err := MyDiv(10, 2)
    if err != nil {
        fmt.Println("error = ", err)
    }else {
        fmt.Println("reuslt = ", result)
    }
}

如果b为不为零输结果,如果为0则输出报错信息

原文地址:https://www.cnblogs.com/baylorqu/p/9658080.html