兄弟连区块链技术Go语言defer的使用
Go语言经过十余年的发展,已成为最流行的新兴语言。目前,Go语言已成为云计算领域的首选语言,且随着近几年区块链的流行,作为底层开发语言的Go再次火爆成为区块链领域第一编程语言,IBM的Fabic等重量级的区块链项目都是基于Go语言开发的。
殊不知,Go语言可开发的应用项目还有很多。除云计算、区块链等开源项目外,还包含Devops、人工智能、游戏、存储引擎、Web、系统/命令行工具、中间件、测试/持续交付、文件系统等各方面的开源项目。
defer
不管程序是否出现异常,均在函数退出时候,自动执行相关代码
实战
实例1
package main
import (
"fmt"
)
func main() {
defer func() {
fmt.Println("main defer")
}()
if err := test0(); err != nil {
fmt.Println(err.Error())
return
}
if err := test1(); err != nil {
fmt.Println(err.Error())
return
}
}
func test0() error {
return nil
}
func test1() error {
return nil
}
运行结果
main defer
实例2
package main
import (
"fmt"
"errors"
)
func main() {
defer func() {
fmt.Println("main defer")
}()
if err := test0(); err != nil {
fmt.Println(err.Error())
return
}
if err := test1(); err != nil {
fmt.Println(err.Error())
return
}
}
func test0() error {
return errors.New("test0 error")
}
func test1() error {
return nil
}
运行结果
test0 error
main defer
实例3
package main
import (
"fmt"
"errors"
)
func main() {
defer func() {
fmt.Println("main defer")
}()
if err := test0(); err != nil {
fmt.Println(err.Error())
return
}
if err := test1(); err != nil {
fmt.Println(err.Error())
return
}
}
func test0() error {
return nil
}
func test1() error {
return errors.New("test1 error")
}
运行结果
test1 error
main defer
实例4
package main
import (
"fmt"
"errors"
)
func main() {
defer func() {
fmt.Println("main defer0")
}()
defer func() {
fmt.Println("main defer1")
}()
if err := test0(); err != nil {
fmt.Println(err.Error())
return
}
if err := test1(); err != nil {
fmt.Println(err.Error())
return
}
}
func test0() error {
defer func() {
fmt.Println("test0 defer")
}()
return nil
}
func test1() error {
defer func() {
fmt.Println("test1 defer")
}()
return errors.New("test1 error")
}
运行结果
test0 defer
test1 defer
test1 error
main defer1
main defer0
高能预警,兄弟连教育区块链直播课程8月持续火爆来袭!
原价1188元的12节区块链进阶课程,现仅需1元!
还可免费领取《Go语言基础实战项目开发》与《Go语言高级实战项目开发》教材两本!!
限时限量!!先到先得!!
关注兄弟连区块链公众号可以获得更多区块链技术干货!!!
文中图片素材来源网络,如有侵权请联系删除
网上报名
新闻资讯
更多>>-
兄弟连“因材施教搭建桥梁”计划正式启动
2018-06-14
-
兄弟连PHP培训:高薪就业才是硬道理
2018-06-14
-
兄弟连北京安卓培训:万元高薪班级爆满
2018-06-14
-
25W高薪挑战安卓 零基础培训首选兄弟连
2018-06-14
-
兄弟连PHP教程发布 海量资源应有尽有
2018-06-14