thinking:聊起闭包、不得不说匿名函数,聊到匿名函数,goland里面用到的最多,最常见的是defer.
匿名函数:即没有名字的函数。 闭包:即在函数里嵌套函数,但函数中一般不允许声明另一个函数,故那就是嵌套匿名函数了【类型为函数的变量】【注:递归场景下除外】。
defer:延迟函数,普遍用匿名函数,即闭包。
上面聊了那么几者的关系,换句话说,明白了其中defer,那么你就Get大部分了。
https://juejin.im/post/6844903793771937805
https://segmentfault.com/a/1190000018689134
thinking: 匿名函数虽然带来编码上极大的灵活性,但不易理解,易出bug。需理解参数传递关系。匿名函数【闭包】极大的会导致对象逃逸,相对即引用传递【https://driverzhang.github.io/post/golang%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E9%80%83%E9%80%B8%E5%88%86%E6%9E%90/】,理解其中串联的知识学问,才能融汇贯通。
defer延迟机制及源码实现,后面将会继续介绍。
本文探讨了Golang中的匿名函数和闭包概念,强调了它们在defer语句中的应用。匿名函数提供了编码灵活性,但也可能引发理解困难和潜在的bug,特别是与对象逃逸和引用传递相关的问题。理解这些机制对于深入掌握Golang至关重要。后续内容将深入讲解defer的延迟机制及其源码实现。
363

被折叠的 条评论
为什么被折叠?



