目录
- 概述
- 实践
- defer
- 结果
- defer和return执行顺序
- 结束
概述
defer 类似 java 中的异常处理中的 finally ,在 Go 中 defer 是一种压栈出栈操作。
实践
defer
package main
import "fmt"
func demo1() {
fmt.Println("demo1")
}
func demo2() {
fmt.Println("demo2")
}
func demo3() {
fmt.Println("demo3")
}
func main() {
defer fmt.Println("end1")
defer fmt.Println("end2")
defer demo1()
defer demo2()
defer demo3()
fmt.Println("1111")
fmt.Println("2222")
}
结果
defer和return执行顺序
package main
import "fmt"
func returnF() int {
fmt.Println("return ....")
return 0
}
func deferF() int {
fmt.Println("defer ....")
return 0
}
func returnAndDeferF() int {
deferF()
return returnF()
}
func main() {
returnAndDeferF()
}
结束
defer语句调用顺序 至此结束,如有疑问,欢迎评论区留言。