Go 100 mistakes之意外的变量隐藏(variable shadowing) 变量的作用域是指它的可见性。换句话说,程序中的变量名在哪部分是有效的。在Go中,在一个块中声明的变量名称可以在其内部块中重新声明,这被称作变量隐藏(variable shadowing)。然而这种规则由很容易出现错误。 在下面的例子中,将会看到一个关于变量隐藏而产生的...
100 Go Mistakes and How to Avoid Them总结了常见的GO使用错误和技巧,全文内容非常丰富,适合初学和想深入学习Golang的同学,建议有时间可以全文阅读一下,本文把书里的知识点用简要的话总结一下,有些内容通过图片标注的方式展示给读者。也方便准备工作的同学快速阅览。本文原文发布在: 知乎上的文章是从博客里粘贴出来...
Go 100 mistakes之如何正确设置枚举值中的零值 枚举类型是由一组值组成的数据类型。在Go语言中,没有enum这样的关键字。然而,处理一组值最好的方法是用类型别名和常量。但是,我们无法达到其他语言所能达到的安全水平。这就是为什么我们在处理枚举值时必须要小心的原因。让我们来看一些相关的实践以及如何避免一些常见的...
Go 100 mistakes之如何正确设置枚举值中的零值 本文是对 《100 Go Mistackes:How to Avoid Them》 一书的翻译。因翻译水平有限,难免存在翻译准确性问题,敬请谅解。 我们知道,在Go中会给定义的变量一个默认值,比如int类型的变量默认值是0。我们在定义枚举值时,往往也会从0值开始定义。本文就解释如何区分是显示...
列舉型別是由一組值組成的資料型別。在 Go 語言中,沒有 enum 這樣的關鍵字。然而,處理一組值最好的方法是用型別別名和常量。但是,我們無法達到其他語言所能達到的安全水平。這就是為什麼我們在處理列舉值時必須要小心的原因。讓我們來看一些相關的實踐以及如何避免一些常見的錯誤。
100 个 go 语言错误及避坑指南 字符串 标准库 #37 不正确的字符串遍历 遍历的元素是 rune #75 提供错误的持续时间 使用 time.Second 而不是 1e9 #38 乱用 trim 你了解 TrimLeft 和 TrimRight 吗 #76 time.After 内存泄露 使用 time.Af ter 要谨慎 #39 非优化的字符串连接 字符串连接和 []byte 互换...
Go 100 mistakes - #15: Missing code documentation Documentation is an important aspect of coding. It simplifies how clients can consume an API but can also help in maintaining a project. In Go, we should follow some rules to make our code idiomatic....
Go 100 mistakes - #16: Not using linters A linter is an automatic tool to analyze code and catch errors. To understand why linters are important, let’s take one concrete example. In mistake #1, “Unintended variable shadowing,” we discussed potential errors related to variable shadowing. ...
100 Go mistakes之意外的变量隐藏 本文是对 《100 Go Mistackes:How to Avoid Them》 一书的翻译。因翻译水平有限,难免存在翻译准确性问题,敬请谅解 变量的作用域是指它的可见性。换句话说,程序中的名称在哪部分是有效的。在Go中,在块中声明的变量名称可以在内部块中重新声明。这种被称为变量隐藏的原则很...
[1.3 100 个 Go 错误](chapter/1-go-simple-to-learn-but-hard-to-master/1-3-100-go-mistakes.md) + - [1.4 本章总结](chapter/1-go-simple-to-learn-but-hard-to-master/1-4-chapter-summary.md) +- [2 代码和项目组织](chapter/2-Code-and-project-organization/2-0-Code-and-project-...