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的函数内打印的值是在+=
执行后的