PegasusWang/LetsGo

defer 调用时机:应该在return之前

Handsomer opened this issue · 1 comments

defer 语句¶
go 中提供了一个 defer 语句用来延迟一个函数(匿名函数)或者方法的执行,它会在函数执行完成(return)之后调用。

`import (
"fmt"
"math"
"strconv"
)
func deferDemo() string{
//defer 的调用顺序
defer fmt.Println("defer place one")
defer fmt.Println("defer place two")
fmt.Println("print in after defer place")
return "return place"

}
func main() {
fmt.Println(deferDemo())
}
go run main.go
print in after defer place
defer place two
defer place one
return place
`

fixed. thanks for report.