go语言中defer
时间: 2023-07-07 09:24:27 浏览: 165
defer 是 Go 语言中的一个关键字,用于延迟执行函数。当 defer 关键字后的函数被调用时,它并不会立即执行,而是在函数返回之前被延迟执行。defer 常用于资源释放、异常处理(recover)等场景,可以保证在函数结束之前一定会执行。
下面是一个简单的例子,展示了 defer 的用法:
```
func foo() {
defer fmt.Println("world")
fmt.Println("hello")
}
func main() {
foo()
}
```
输出结果为:
```
hello
world
```
即使在 foo() 函数中,defer 关键字后的语句被放在了第一行,它依然会在 foo() 函数执行完毕后被执行。这就是 defer 的特殊之处。
相关问题
go语言 defer关键字示例代码
好的,下面是一个go语言的defer关键字示例代码:
```
package main
import "fmt"
func main() {
defer fmt.Println("1")
defer fmt.Println("2")
defer fmt.Println("3")
fmt.Println("done")
}
```
这个代码会输出:
```
done
3
2
1
```
这是因为defer关键字会延迟函数的执行,直到函数返回之前才会执行。在这个例子中,三个defer语句会在main函数返回之前按照从后往前的顺序执行,因此会先输出3,然后是2,最后是1。
阅读全文