为了账号安全,请及时绑定邮箱和手机立即绑定

Golang在处理错误返回时删除重复代码

Golang在处理错误返回时删除重复代码

Go
潇湘沐 2022-06-27 10:57:23
我正在通过创建 Web 应用程序来学习 Golang。在使用 Go 时,我经常遇到这种情况err = SomeFunction()// Handling errif err != nil {   Logging(err)   return err}在 C 或 C++ 中,“处理错误”部分我可以使用 MARCO 或 INLINE FUNCTION 删除重复代码。任何人都知道如何在 Golang 中做到这一点?
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

内联函数的工作方式Go不同于它在 C 或其他语言中的工作方式。Go编译器足够智能,可以在其编译代码中将更简单的函数转换为内联函数。


因此,如果您希望减少代码重复或降低代码的认知复杂性,如果您的记录器正在对文件执行某些会消耗时间的写入操作,您可以采用以下方法创建一个匿名函数并将其分配给变量并记录您的错误。


func returnFromErr(){


    // Create a anonynous function and assign it a variable

    logErr := func (err error)bool {

        if err != nil{

            logger(err)

        }

        return err != nil

    }


    err := someFunction()

    // call the function and log your error. You can avoid certain level of duplication

    if logErr(err){return}


    fmt.Println("no error")

}


func main(){

returnFromErr()


}


查看完整回答
反对 回复 2022-06-27
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

你可以使用 https://gitlab.com/opennota/macro


在 input.go.tmpl 中定义宏


func MACRO_m1(a, b int) {

    a = b ^ 1

}


func main(){

   m1(v1, v2)

}

在命令行上


macro input.go.tmpl output.go

将转换为


func main(){

     v1 = v2 ^ 1       

}


查看完整回答
反对 回复 2022-06-27
  • 2 回答
  • 0 关注
  • 190 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号