我写了如下代码在golang,我推迟函数返回功能,什么是
package main
import "fmt"
func main() {
defer func() func() {
fmt.Println("start")
return func() {
fmt.Println("end")
}
}()()
fmt.Println("aaaa")
return
}
,我除了输出AAAA开始结束
,但实际输出顺序开始AAAA结束
我不明白为什么输出 “AAAA” 之前 “启动”
您正在调用被调用的'func()func()'并返回'defer'调用的'func()'。在结尾'}()()'看到双parens。你打电话给第一个,“延期”被告知叫第二个从第一个返回。 – RayfenWindspear