• 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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

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

  • 相关阅读:
    构建强大的Web应用之Django详解
    【流程图——讲解】
    CentOS8安装KSA服务端并设置开机自启
    安装keras、tensorflow
    提供话费充值接口 话费快充慢充/API独立接口,商城/小程序/公众号合作
    ssm医院预约挂号改约通知系统 java项目9w78q
    Mybatis多表查询
    PingCAP Clinic 快速上手指南
    Util应用框架基础(二) - 对象到对象映射(AutoMapper)
    【入门】初识深度学习
  • 原文地址:https://blog.csdn.net/weixin_40425640/article/details/127630280