这是一本开源的书籍代码,Go 开发人员在接触生产中的代码之前必读的书。
100 个Go 语言错误以及如何避免它们向您展示了如何:
100 个 Go 错误以及如何避免它们。将重点放在 Go 代码中你可能甚至不知道自己正在犯的常见错误上。
您将探索该语言的关键领域,例如并发性、测试、数据结构等,并学习如何避免和修复您自己的项目中的错误。随着您的学习,您将浏览处理 JSON 数据和 HTTP 服务的棘手部分,发现 Go 代码组织的最佳实践,并学习如何有效地使用切片。
文章的结构也非常的有趣,用的是一个个小岛组成:

就像一个个山头,一个个的攻打下来。
变量的范围是指可以引用变量的位置:换句话说,名称绑定有效的应用程序部分。在 Go 中,在块中声明的变量名可以在内部块中重新声明。这种称为变量阴影的原理很容易出现常见错误。
var client *http.Client
if tracing {
client, err := createClientWithTracing()
if err != nil {
return err
}
log.Println(client)
} else {
client, err := createDefaultClient()
if err != nil {
return err
}
log.Println(client)
}
/ Use client
在这个例子中,我们首先声明一个客户端变量。然后,我们在两个内部块中使用短变量声明运算符 (:=) 将函数调用的结果分配给内部客户端变量,而不是外部客户端变量。结果,外部变量始终为零。