Go程序设计语言(英文版)
作者:【美】艾伦 A. A. 多诺万(Alan A. A. Donovan),【加】布莱恩•柯尼汉(Brian W. Kernighan)
ISBN:978-7-111-52628-5
本书是所有想要学习Go语言的程序员的权威学习资源和教程,旨在帮助你立刻开始使用Go,以及良好地掌握这门语言,并充分地利用Go的语言特性和标准库来撰写清晰的、符合习惯用法的、高效的程序,以解决现实世界的问题。作者不要求读者了解Go语言或已经具有任何具体程序语言的编程经验,所以无论你是用像C、C++或Java那样的编译型语言编过程序,还是有过像Python、Ruby或JavaScript那样的解释型语言的编程经历,都会觉得这本书易于理解和学习。<br />
本书的组织结构<br />
第1章介绍Go语言的基础概念,通过十几个完成日常任务(包括读写文件、格式化文本、创建图像,以及在Internet客户端和服务器之间通信)的程序来介绍这门语言。<br />
开始的几章覆盖Go程序的组成元素(语法、控制流、数据类型),以及程序的组织(包、文件和函数)。后面的几章详细解释了包机制,以及如何高效地利用go工具来构建、测试和维护项目。<br />
关于方法和接口的两章(第6章和第7章)介绍Go以一种不同寻常的方式来诠释面向对象程序设计,其中方法可以关联到任何用户自定义的类型,而具体类型和抽象类型(即接口)之间的关系是隐式的,具体类型可能会满足一个该类型设计者没有意识到其存在的接口。书中用实际例子来解释封装、组合、可替代性。<br />
关于并发的两章(第8章和第9章)深入讨论这个日益重要的主题。第8章介绍goroutine和信道的基本机制,说明了被称为CSP(Communicating Sequential Process)的模型。第9章讨论了并发性中较传统的方面,使用共享变量来实现并发。这两章内容为程序员首次遇到并发问题打下坚实基础。<br />
最后两章研讨Go的低级特性。第12章讲解使用反射的元编程的艺术。第13章展示了如何运用unsafe包来绕过Go的类型系统,以及如何使用cgo工具来调用C代码。<br />
本书代码编写规范,配有数百个有用实例,涵盖整个Go语言及其最重要的包和广泛的应用。每章都附有一定数量的练习,可以用来测试读者对Go的理解,或是探索对书中示例的扩展和变形。源代码可以从位于<a href="http://gopl.io/">http://gopl.io/</a>的公开Git仓库下载,并且能够方便地使用go get命令获取、构建和安装。