栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

golang的“延迟”如何捕获闭包的参数?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang的“延迟”如何捕获闭包的参数?

“第2部分”闭包捕获变量“ i”。当闭包(稍后)中的代码执行时,变量“ i”具有在range语句的最后一次迭代中具有的值,即。‘4’。因此

4 4 4 4 4

输出的一部分。

“第3部分”在其闭包中未捕获任何外部变量。如规格所述:

每次执行“ defer”语句时,将照常评估调用的函数值和参数并重新保存,但不会调用实际函数。

因此,每个延迟的函数调用都具有不同的’n’参数值。它是执行defer语句时的’i’变量的值。因此

4 3 2 1 0

部分输出,因为:

…延迟调用将在周围函数返回之前立即按LIFO顺序执行…


需要注意的关键点是,在 执行 defer语句时,不会 执行 “ defer f()”中的“ f()”

当执行defer语句时,将 评估 “ defer f(e)”中的表达式“ e” 。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/448038.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号