问题遇到的现象和发生背景
以下两端代码为什么一个输出5,一个输出6
问题相关代码,请勿粘贴截图
package main
import "fmt"
func f4() (x int) {
defer func(x int) {
x++
}(x)
return 5
}
func main() {
fmt.Println(f4())//结果输出5
}
package main
import "fmt"
func f2() (x int) {
defer func() {
x++
}()
return 5
}
func main() {
fmt.Println(f2())//结果输出6
}
运行结果及报错内容
debug显示第一份结果为5的代码中return 5 被执行了两次,是为什么啊