您好,欢迎来到知库网。
搜索
您的当前位置:首页Go关于defer的一道面试题

Go关于defer的一道面试题

来源:知库网

请写出输出结果

func main(){
    a := 1
    b := 2
    defer calc(a, calc(a,b))
    a = 0
    defer calc(a, calc(a,b))
}
func calc(x,y int){
    fmt.Println(x,y,x+y)
    return x+y
}

结果是

1 2 3
0 2 2
0 2 2
1 3 4

考察两个知识点:
1.defer是栈调用,后写的先执行
2.defer的函数调用语句会在父函数调用后执行,但是用到的参数会在当时就执行得出

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

热门图文

Copyright © 2019-2025 zicool.com 版权所有 湘ICP备2023022495号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务