defer:函数执行完后执行的语句
1.示例代码
package main
import "fmt"
func main() {
// 写入defer关键字
fmt.Println("hello main 1,,,,")
defer fmt.Println("main end 1")
defer fmt.Println("main end 2")
fmt.Println("hello main 2,,,,")
}
// 结果
/*
hello main 1,,,,
hello main 2,,,,
main end 2
main end 1
*/
2. defer的知识点
1. defer执行顺序
采用栈的数据结构,先进后出
2.defer和return的谁先执行
package main
import "fmt"
func deferFunc() int {
fmt.Println("defer func run ")
return 0
}
func returnFunc() int {
fmt.Println("return func run ")
return 0
}
func deferAndReturnFunc() int {
defer deferFunc()
return returnFunc()
}
func main() {
deferAndReturnFunc()
}
// 结果:return方法先执行
return func run
defer func run
感觉兴趣的小伙伴可以加好友一起交流!!