现在市面上与Go语言相关的书籍较少,大部分书籍针对的是中高级开发人员,而从基础知识讲解,进而到初步应用开发的指导性书籍更少。
针对以上情况,本书详细讲解了Go语言基础知识点,并联系实际指出其可能存在的陷阱,帮助读者加深学习时的理解。本书还结合流行度较高的开源第三方包,引导读者进行更高级的实际项目开发。
本书非常适合Go语言新手细细阅读。有一定经验的开发人员,也可以根据自己的情况,选择一些章节来看。
第 1~4章为基础部分,主要讲解Go语言的基础知识,包括Go语言的安装、基本语法、标识符、关键字、运算符、标点符号、字面量等,以及Go项目的工程构建、编译与运行等。
第 5~8 章为中级部分,主要讲解Go语言的复合数据类型,包括数组(array)、切片(slice)、字典(map)、结构体(struct)、指针(pointer)、函数(function)、接口(interface)和通道(channel)类型等。利用灵活的type关键字,可以自定义各种需要的数据类型。函数提供了更直接的数据处理能力,而通过panic,recover,defer处理错误的方式,也是Go语言的典型特征。
第9~13章为高级部分,主要讲解结构体、接口和方法,它们是Go语言简单与组合思维的基础。非常友好地支持并发是Go语言天然具有的典型特征,协程(gorountine)和通道(channel)配合,加上sync 包提供的系列功能,使我们可以很方便地编写支持高并发的代码。
第14~16章为拓展部分,主要介绍Go语言提供的官方标准库,包括OS操作、文件I/O、网络传输处理、指针相关操作、代码反射、日志记录等。这些包可以让我们快速进入实际开发。另外对MySQL数据库以及LevelDB、BoltDB数据库的操作有简单介绍。
第17、18章为应用部分,主要以网络爬虫和Web框架为例,进入实际开发。网络爬虫是互联网服务中比较重要的功能,通过互联网抓取、分析、保存资料是程序员的一项基本能力,读者可以看到Go语言在此方面也是游刃有余。而利用Gin这款轻量级的Web框架,可以很方便地搭建各种Web服务。
自2009年Go语言面世以来,已经有越来越多的公司转向Go语言开发。而Go语言以语法简单、学习门槛低、上手快著称,但入门后很多人发现要写出地道的、遵循 Go语言思维的代码却实属不易。
我作为Go语言的爱好者,在阅读系统标准库源代码或其他知名开源包源代码时,发现大牛对这门语言的了解之深入,代码实现之巧妙优美,除了膜拜还是膜拜。所以我建议你有时间多多阅读这些代码,网上说Go大神的标准是“能理解简洁和可组合性哲学”。的确,Go语言追求代码简洁到极致,而组合思想可谓借助于结构体和接口而成为Go的灵魂。
function、method、interface、type等名词是程序员们接触比较多的关键字,但在Go语言中,你会发现,它们有更强大、更灵活的用法。当你彻底理解了Go语言相关基本概念,以及对其特点有了深入的认知(当然这也是这本书的目的),再假以时日多练习和实践,我相信你很快就能真正掌握这门语言,成为一名出色的Gopher。
本书最早通过网络发布,有不少关注Go语言的朋友通过各种途径给了不少建议,这里要感谢网友Joyboo、林远鹏、Mr_RSI、magic-joker等。
本书最终得以出版,需要感谢李岩兄的鼓励和帮助,以及其他各位朋友和老师们,感谢你们的鼓励和帮助,感谢你们的支持!
最后,希望更多的人了解和使用Go语言,也希望阅读本书的朋友们多多交流。虽然本书中的例子都经过实际运行,但难免会有错误和不足之处,烦请您指出。书中其他疏漏之处也恳请各位读者斧正。作者联系邮箱:roteman@163.com。
祝各位Gopher工作开心,编码愉快!
李晓钧