defer关键字修饰的语句将获得延时执行的特性,将会在该方法结束前调用
注意:defer语句只能出现在方法内部
defer的使用
1 | func main() { |
多个defer的调用顺序
defer是延时加载的,当普通语句执行完毕后,defer的语句遵循逆序执行:最先写的defer语句最后执行
1 | func main() { |
注意:不管程序是否报错中断,defer语句总会执行,可以理解为Java的finally
defer和匿名函数的结合使用
1 | func main() { |
以上程序的执行结果为:
1 | 外部:a的函数内值:888,b的函数内值999 |
我们可以看到,a和b的函数内打印的值是在+=执行后的