Skip to content

介绍

Go 是一门新语言。尽管它借鉴了现有语言的思想,但它与众不同的特性,使得用 Go 编程在本质上不同于其它语言。将 C++ 或者 Java 程序直译成 Go 不太可能产生令人满意的结果—— Java 程序是用 Java 写的,并非 Go。另一方面,从Go的角度思考问题,你可以编写出同样可行但完全不同的程序。换言之,想写好 Go,需要理解它的特性和风格。了解 Go 编程的既定约定也很重要,例如命名、格式、程序构造等,以便于其他Gopher能轻松理解您编写的程序。

本文档提供了编写清晰、惯用的 Go 代码的技巧。它补充了语言规范Go 之旅如何编写 Go 代码,所有这些您都应该首先阅读。

TIP

2022 年 1 月添加标注:本文档是为了 2009 年发布 Go 编写的,此后没有进行过重大更新。虽然它是了解如何使用该语言的一个很好的指南,但感谢该语言的稳定性,它很少介绍库,也没有介绍自它被编写以来 Go 生态系统的重大变化,列入构建系统、测试、模块和多态性。也没有更新它的计划,因为发生了太多事情,并且也出现了大量的文档、博客和书籍很好的描述了现代 Go 的用法。《Effective Go》依然有用,但读者应该明白它远不是一个完整的指南。有关上下文,请参阅 issue 28782

例子

Go 包源不仅用作核心库,还用作如何使用该语言的示例。此外,许多包包含可工作的、独立的可执行示例,您可以从 go.dev 网站直接运行,例如这个(如有必要,单击“示例”来打开它)。如果您对如何解决问题或如何实现某些内容有疑问,库中的文档、代码和示例可以提供答案、想法以及背景。