Go语言特有函数defer语句Test功能测试函数01
目录01defer语句•defer语句定义•defer使用环境•Go语言的defer语句会将其后面跟随的语句进行延迟处理•在defer归属的函数即将返回时,将延迟处理的语句按defer的逆序进行执行•即先被defer的语句最后被执行,最后被defer的语句最先被执行•因为defer语句是在当前函数即将返回时被调用,所以defer常常被用来释放资源defer语句1defer语句defer任意语句语法格式1defer语句packagemainimport"fmt"funcmain(){fmt
Println("deferbegin")deferfmt
Println(1)deferfmt
Println(2)deferfmt
Println(3)fmt
Println("deferend")}•当有多个defer行为被注册时,它们会以逆序执行(类似于栈:后进先出)•延迟调用是在defer所在函数结束时进行运行结果为:deferbegindeferend321•在日常工作中处理业务或逻辑中涉及成对的操作是一件比较烦琐的事情,比如打开和关闭文件、接收请求和回复请求、加锁和解锁等•在这些操作中,最容易忽略的就是在每个函数退出处正确地释放和关闭资源•而defer语句正好是在函数退出时执行的语句,所以使用defer能非常方便地处理资源释放问题
1defer语句defer的资源释放02Test功能测试函数•单元测试•性能测试•覆盖率测试•编写测试用例注意事项•常用测试参数•完善的测试体系能够提高开发的效率•当项目复杂的时候,想要保证尽可能的减少bug,有两种有效的方式分别是代码审核和测试•Go语言中提供了testing包来实现单元测试功能,可以进行自动化的单元测试,输出结果验证,并且可以测试性能测试的意义testing包的三种测