文章预览
Go 语言中的错误处理不仅仅只有 if err != nil , defer 、 panic 和 recover 这三个相对来说不不如 if err != nil 有名气的控制流语句,也与错误处理息息相关。本文就来讲解下这三者在 Go 语言中的应用。 Defer defer 是一个 Go 中的关键字,通常用于简化执行各种清理操作的函数。 defer 后跟一个函数(或方法)调用,该函数(或方法)的执行会被推迟到外层函数返回的那一刻,即函数(或方法)要么遇到了 return ,要么遇到了 panic 。 语法 defer 功能使用语法如下: defer Expression 其中 Expression 必须是函数或方法的调用。 defer 使用示例如下: func f () { defer fmt.Println( "deferred in f" ) fmt.Println( "calling f" ) } func main () { f() } 执行示例代码,得到输出如下: $ go run main.go calling f deferred in f 根据输出可以发现,被 defer 修饰
………………………………