Go 语言中你最容易犯错的语法是什么?很多人可能都有不同的答案,但是最多的答案之一就是 for 循环中变量的使用问题了。即使是 Go 团队的开发者,我也曾看到他们提交的代码犯过这种错误,更不用说其他的 Go 开发者了,比如 this problem at Let’s Encrypt,几乎每个 Go 开发者都犯过这个错误,这种类型的错误已经在我的心里留下了阴影,每次写 for 循环我都心头一紧,经常使用局部变量 shade 一下循环变量,即使没有问题。Russ Cox 检查了 1.4 万个 go module,大约 1.2 万个 github 仓库,搜寻使用 x := x 这种技巧来解决循环变量……