package main
import (
"time"
"fmt"
)
func a() int {
defer b(time.Now()) // 这里不会调用b(), 但是会将当前时间t赋值给b的传入参数
time.Sleep(1 * time.Second)
// 其实也不是在这里调用的 return 0 其实是两个语句 1.返回值赋值为0;2.return
// 在return之前调用b()
return 0
}
func b(t time.Time) {
fmt.Println(time.Since(t).Nanoseconds() / (1000 * 1000))
}
func main() {
a()
}
主要是对defer 后面函数调用的理解,回将参数先传入,然后在return之前调用defer后面的函数