funf6()int{variint=0deferfunc(aint){fmt.Println("if6:",a)i=i+5}(i)i=1i++returni}按照改写规则是将return语句分开成两句写,returnxxx会被改写成:返回值=xxx调用defer函数空的returni=0返回值r=i(i等于0)i=1i++(i等于2)returnr(我觉得应该是0啊)结果为什么是2呢?
2 回答

缥缈止盈
TA贡献2041条经验 获得超4个赞
我也是go初学者,我是这样理解的`funcf6()int{//fun==>func你写错了variint=0deferfunc(aint){//延迟调用的参数会立刻生成,但是在上层函数返回前函数都不会被调用fmt.Println("if6:",a)//a=i=0print0i=i+5}(i)i=1i++//i=2returni//return2}`
添加回答
举报
0/150
提交
取消