DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Golang

Go 闭包是什么?循环变量捕获陷阱与正确修复方案

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

闭包 = 函数 + 它引用的外部变量,函数可访问并修改定义时的环境变量,即使外层函数已返回。常见陷阱:循环变量捕获(经典坑)——for i := 0; i < 3; i++ { go func() { println(i) }() } 三个 goroutine 可能都打印 3(Go 1.22 前 i 共享)。修复:循环内复制 i := i 或用参数传值。延迟执行修改外层变量是闭包的常见正确用法(计数器、累加器)。

下载推广海报

圈内讨论推广海报

《Go 闭包是什么?循环变量捕获陷阱与正确修复方案》完整推广海报
REPLIES

回复

0 条回复
暂无回复。