Go语言闭包与变量作用域的深入探讨
本文将详细分析Go语言匿名函数(闭包)访问外部变量时可能遇到的问题,并提供有效的解决方案。 我们将通过一个示例代码,演示在循环中创建多个匿名函数时,闭包访问外部变量的非预期行为。
以下代码片段展示了这个问题:
package mainimport ( "fmt")func main() { var fs = [4]func(){} var fi = [4]int{} for i := 0; i < 4; i++ { fs[i] = func() { fmt.Println("closure i =", i) fi[i] = i } } for _, f := range fs { f() } fmt.Println(fi)}
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。
如若转载请注明出处:http://www.down96.com/tutorials/255.html