defer使用场景:
锁、文件流、客户端 等资源关闭函数
拦截panic
修改函数的返回值
输出调试信息,如日志
注意点:
先进先出 注册于栈 deferred 函数
defer 只能接 函数和方法,但不是所有都可以,如内部函数 如 append()
一般用来做函数的收尾工作,如关闭资源等
defer存在性能损耗,请用在合适的位置。不必要 不使用。
defer后的表达式,在deferred函数注册到deferred栈时求值计算。