<Go语言从入门到进阶实战>5.6.2闭包的记忆效应中关于闭包函数地址的疑问

NextZeus · · 816 次点击
大概可以这么理解:函数本身也是变量的一种,只不过本身存储了一些额外的信息(函数体);因此返回一个函数和返回一个变量是一致的,所以输出的函数地址是相同的(可以将函数视为引用类型的变量) 两个不同的闭包实例是因为生成闭包的上下文不同,即传入的value和函数体是分别存储的 闭包函数Accumulate可以视为 ```go type Accumulate struct { value int f func() int } ``` (实际不一定是这样),accumulate和accumulate2就是两个结构体实例,其f的值均指向同一块内存 个人理解,如有不对的地方,谢谢指正
#1