Golang:延迟调用函数与return的谁先谁后? package main import "fmt" var a = 10 func main() { fmt.Printf("a = %d\n", test()) } func test() int { defer func() { a = 20 }() return a } 输出: a = 10 结论:return先于延迟调用函数