面试题答案
一键面试输出为:
3
2
1
原因:defer
语句会将其后面跟随的语句延迟到包含该 defer
语句的函数即将返回时才执行。多个 defer
语句会按照后进先出(LIFO,Last In First Out)的顺序执行。在上述代码中,先执行 fmt.Println(3)
输出 3
,然后按照 defer
后进先出的顺序,先执行 fmt.Println(2)
输出 2
,最后执行 fmt.Println(1)
输出 1
。
输出为:
3
2
1
原因:defer
语句会将其后面跟随的语句延迟到包含该 defer
语句的函数即将返回时才执行。多个 defer
语句会按照后进先出(LIFO,Last In First Out)的顺序执行。在上述代码中,先执行 fmt.Println(3)
输出 3
,然后按照 defer
后进先出的顺序,先执行 fmt.Println(2)
输出 2
,最后执行 fmt.Println(1)
输出 1
。