什么是正确的golang方式来做到这一点:

前端之家收集整理的这篇文章主要介绍了什么是正确的golang方式来做到这一点:前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这看起来有点愚蠢,肯定有更好的方法吗?
err = SendMessageAndWait(db,"this is a test")
if err != nil {
    fmt.Println("Error sending message",err)
    return
}
err = DoSomething(db,err)
    return
}
err = CheckSomething(db,"this is another test")
if err != nil {
    fmt.Println("Error sending message",err)
    return
}
err = SendMessageAndWait(db,"this is a third test")
if err != nil {
    fmt.Println("Error sending message",err)
    return
}
... x10 ...
可悲的是,这就是Go的方式,但是在某种程度上你可以让它更清洁:
func isError(err error,pre string) error {
    if err != nil {
        log.Printf("%v: %v",pre,err)
    }
    return err
}

func isErrorBool(err error,pre string) (b bool) {
    if err != nil {
        log.Printf("%v: %v",err)
        b = true
    }
    return
}

func checkSomething() error {
    return nil
}

func main() {
    if err := isError(checkSomething(),"something Failed"); err != nil {
        return /* err */
    }

    //if you don't want to return the error,just check it and die.
    if isErrorBool(checkSomething(),"something else Failed") { 
        return
    }
}

猜你在找的Go相关文章