Github每日精选(第67期):go语言必须跳过的坑100-go-mistakes

100-go-mistakes

这是一本开源的书籍代码,Go 开发人员在接触生产中的代码之前必读的书。

100 个Go 语言错误以及如何避免它们向您展示了如何:

  • 躲避 Go 开发者最常犯的错误
  • 构建和组织您的 Go 应用程序
  • 有效地处理数据和控制结构
  • 以惯用的方式处理错误
  • 提高您的并发技能
  • 优化你的代码
  • 使您的应用程序为生产做好准备并提高测试质量

100 个 Go 错误以及如何避免它们。将重点放在 Go 代码中你可能甚至不知道自己正在犯的常见错误上。

您将探索该语言的关键领域,例如并发性、测试、数据结构等,并学习如何避免和修复您自己的项目中的错误。随着您的学习,您将浏览处理 JSON 数据和 HTTP 服务的棘手部分,发现 Go 代码组织的最佳实践,并学习如何有效地使用切片。

在这里插入图片描述
github上的地址在这里

文章的结构也非常的有趣,用的是一个个小岛组成:

在这里插入图片描述
就像一个个山头,一个个的攻打下来。

第一个 注意隐藏变量

变量的范围是指可以引用变量的位置:换句话说,名称绑定有效的应用程序部分。在 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

在这个例子中,我们首先声明一个客户端变量。然后,我们在两个内部块中使用短变量声明运算符 (:=) 将函数调用的结果分配给内部客户端变量,而不是外部客户端变量。结果,外部变量始终为零。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值