面试题答案
一键面试- 返回值:
- 函数
test
的返回值是0
。
- 函数
- defer执行机制及返回值产生过程:
- 在Go语言中,
defer
语句会将其后面跟随的函数延迟到包含该defer
语句的函数即将返回时执行。 - 当执行到
return i
时,Go语言会先计算返回值,这里返回值会被暂存,此时i
的值为0
,所以暂存的返回值为0
。 - 然后,按照
defer
的执行机制,会执行defer
后面的匿名函数func() { i++ }
,此时i
的值变为1
。 - 最后,函数返回之前暂存的返回值
0
,而不是修改后的i
的值1
。所以函数test
最终返回0
。
- 在Go语言中,