我寫了如下代碼在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