【Go面试向】defer与time.sleep初探
大家好 我是寸铁👊
总结了一篇defer传参与time.sleep初探的文章✨
喜欢的小伙伴可以点点关注 💝
请大家看下面这段代码,看运行结果会出现什么,为什么?
问题
demo
package main
import (
"log"
"time"
)
func main() {
start := time.Now()
defer func() {
log.Printf("匿名函数时间差: %v", time.Since(start))
}()
defer log.Printf("时间差: %v", time.Since(start))
time.Sleep(3 * time.Second)
log.Printf("函数结束")
}
这里不少同学会认为:这题我会,先输出
函数结束
,待整个函数结束后,根据defer后进先出
的顺序依次打印计算的时间差,由于这里睡眠了3秒
,两个时间差应该都是3秒左右
。
所以答案为:
函数结束
时间差: