猜你喜欢
深入学习Go语言

深入学习Go语言

书籍作者:李晓钧 ISBN:9787111630722
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:8794
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介
Go语言适合用来进行服务器编程与网络编程,包括Web应用编程等。本书详细讲解了Go语言数据类型、关键字、字面量、基本语法等基础概念及Go项目的工程构建、测试、编译与运行等;深入讲解了协程(goroutine)和通道(channel)等与并发编程有关的概念;还介绍了系统标准库、网络编程和第三方包。读者掌握本书内容后,可以顺利进行实际项目开发。
本书适合Go语言初学者和有一定经验的程序员阅读。
书中代码可免费下载(扫描封底二维码)。
前言
现在市面上与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语言,也希望阅读本书的朋友们多多交流。虽然本书中的例子都经过实际运行,但难免会有错误和不足之处,烦请您指出。书中其他疏漏之处也恳请各位读者斧正。作者联系邮箱:[email protected]
祝各位Gopher工作开心,编码愉快!

李晓钧
目录
出版说明
前言

第1章 Go语言简介1
 1.1 为什么要学Go语言1
 1.2 Go语言安装1
 1.3 Go语言开发工具4
第2章 Go语言编程基础6
 2.1 数据类型6
 2.2 变量9
 2.3 常量14
 2.4 运算符18
 2.5 字符串22
 2.6 流程控制26
第3章 作用域37
 3.1 关于作用域37
 3.2 约定和惯例40
第4章 代码结构化与项目管理43
 4.1 包(package)43
 4.2 Go项目开发与编译46
第5章 复合数据类型54
 5.1 数组(array)54
 5.2 切片(slice)56
 5.3 字典(map)60
第6章 type关键字63
 6.1 type自定义类型63
 6.2 type定义类型别名64
第7章 错误处理与defer66
 7.1 错误处理66
 7.2 关于defer68
第8章 函数74
 8.1 函数(function)74
第9章 结构体和接口86
 9.1 结构体(struct)86
 9.2 接口(interface)94
第10章 方法101
 10.1 方法的定义101
 10.2 指针方法与值方法108
      值方法111
 10.3 匿名类型的方法提升114
第11章 面向对象与内存118
 11.1 面向对象118
 11.2 指针和内存119
第12章 并发处理124
 12.1 协程124
 12.2 通道(channel)127
 12.3 同步与锁131
第13章 测试与调优140
 13.1 测试140
 13.2 调优142
第14章 系统标准库148
 14.1 reflect包148
 14.2 unsafe包155
 14.3 sort包160
 14.4 os包164
 14.5 fmt包167
 14.6 flag 包174
 14.7 文件操作与I/O177
第15章 网络服务186
 15.1 Socket186
 15.2 模板(Template)189
 15.3 net/http包196
 15.4 context包214
第16章 数据格式与存储221
 16.1 数据格式221
      结构体222
 16.2 MySQL数据库231
 16.3 LevelDB与BoltDB 数据库236
第17章 网络爬虫244
 17.1 Colly网络爬虫框架244
 17.2 goquery HTML解析246
第18章 Web框架—Gin250
 18.1 关于Gin250
 18.2 Gin实际应用251
参考文献260