ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] >[success] ## **1:闭包介绍:** 闭包就是一个函数与其相关的引用环境,组合成一个整体 >[success] ## **2:** **strings 和 strconv 包** >[success] ## **3:案例演练** ![](https://img.kancloud.cn/86/cb/86cbbce91505d7584d3145d1de1d0568_1280x592.png) 返回的是一个匿名函数。但是这个匿名函数引用到函数外的n .因此这个匿名函数就和n形成一个整体,构成闭包。(第8行到11行就是闭包) 1)大家可以这样理解:闭包是类.函数是操作,n是字段。函数和它使用到n构成闭包。 2)当我们反复的调用f函数时,因为n是初始化\-次,因此每调用一次就进行累计。 3)我们要搞清楚闭包的关键,就是要分析出返回的函数它使用(引用)到哪些变量,因为函数和它引用到的变量共同构成闭包。 >[success] ## **4:闭包的最佳实践** 请编写一个程序,具体要求如下 1)编写一个函数makefuffix(suffix string)可以接收一个文件后缀名(比如.jpg),并回一个闭包 2)调用闭包,可以传入一个文件名,如果该文件名没有指定的后缀(比如.jpg) ,则返 3)回文件名.jpg,如果已经有.jpg后缀,则返回原文件名。要求使用闭包的方式完成 **strings.HasSuffix**(判断后缀名) ![](https://img.kancloud.cn/ea/69/ea69b515d7ea3517e7700f7708b03647_1078x720.png)