go的关键字defer
1.介绍
defer是Go语言中的一个关键字,它可以用于延迟执行一个函数,直到当前函数返回。defer语句的一般形式如下
defer f()
用栈这个数据结构让先defer的函数后运行;
例如
func main()
{
defer fmt.Println("world")
fmt.Println("hello")
}
结果为:hello world
2.作用
defer语句的常见用途是释放资源,例如关闭文件、解锁互斥锁、关闭数据库连接等
3.注意
defer传参的时候是在defer语句执行时传参,而不是在函数延迟执行时传参;
例如:
func main() {
x := 10
defer fmt.Println(x) // 延迟打印x的值,此时x为10
x = 20 // 修改x的值
}
输出结果为10;