go语言闭包陷阱:循环变量的正确使用方法
本文解释Go语言中一个常见的闭包问题,以及如何避免它。以下代码片段展示了这个问题:
package mainimport "fmt"func main() { var fs = [4]func(){} var fi = [4]int{} for i := 0; i < 4; i++ { fs[i] = func() { fi[i] = i fmt.Println("closure i =", i) } } for _, f := range fs { f() } fmt.Println(fi)}
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。