打开Go语言之门:入门、实战与进阶

打开Go语言之门:入门、实战与进阶

立即试读
手机扫码阅读
  • 微信扫一扫

    关注微信公众号

编辑推荐

本书从基础知识、底层原理、工程实践3个维度带你快速掌握Go语言编程方法与技巧。

内容简介

本书共包含5个部分。

第1部分:快速入门Go语言。作者挑选了变量、常量、基础数据类型、函数和方法、结构体和接口等知识点进行介绍。

第2部分:Go语言的高效并发。这部分主要介绍goroutine、channel、同步原语等知识,让你对Go语言层面的并发支持有更深入的理解,并且可以编写自己的Go语言并发程序。

第3部分:深入理解Go语言。这部分讲解Go语言底层原理和高级功能,比如slice的底层是怎样的、为什么这么高效等。

第4部分:Go语言工程管理。学习一门语言,不仅要掌握它本身的知识,还要掌握模块管理、性能优化等周边技能,因为这些技能可以帮助你更好地进行多人协作,提高开发效率,写出更高质量的代码。你可以在这部分学到如何测试Go语言代码以提高代码质量、如何做好性能优化、如何使用第三方库来提高自己项目的开发效率等。

第5部分:Go语言泛型。这是Go语言在1.18版本中新增的特性。在这一部分作者会带你学习Go语言泛型的使用,以及如何使用泛型来提高效率和简化代码。

作者简介

作者飞雪无情,Go语言早期的布道者、“Go语言实战笔记”作者,通过“飞雪无情”公众号与数万名读者交流Go语言技术,擅长用通俗的语言将底层机制讲得浅显易懂。深耕技术领域近十年,目前在一家互联网公司担任副总裁,负责产品的研发管理和架构设计。

章节目录

版权信息

前言

第一部分 快速入门Go语言

第1章 基础入门:Hello,Go语言

1.1 Hello,World

1.2 程序结构分析

1.3 搭建Go语言开发环境

1.4 项目结构

1.5 编译发布

1.6 跨平台编译

1.7 Go编辑器推荐

1.8 小结

第2章 数据类型:Go语言的基石

2.1 一个简单示例

2.2 基础类型

2.3 变量

2.4 常量

2.5 字符串的使用

2.6 小结

第3章 控制结构:if、for、switch那些事儿

3.1 if条件语句

3.2 switch选择语句

3.3 for循环语句

3.4 小结

第4章 集合类型:如何正确使用array、slice和map

4.1 数组

4.2 切片

4.3 映射

4.4 string和[]byte

4.5 小结

第5章 函数和方法:如何区分函数和方法

5.1 函数

5.2 方法

5.3 小结

第6章 struct和interface:隐式的接口实现

6.1 结构体

6.2 接口

6.3 工厂函数

6.4 继承和组合

6.5 类型断言

6.6 小结

第7章 错误处理:如何更优雅地处理程序异常和错误

7.1 错误

7.2 错误嵌套

7.3 defer函数

7.4 panic函数

7.5 recover函数

7.6 小结

第二部分 Go语言的高效并发

第8章 goroutine和channel:并发的基础

8.1 什么是并发

8.2 进程和线程

8.3 协程

8.4 管道

8.5 select+channel示例

8.6 小结

第9章 同步原语:让你对并发控制得心应手

9.1 资源竞争

9.2 同步原语

9.3 小结

第10章 Context:多协程并发控制神器

10.1 协程如何退出

10.2 Context的使用示例

10.3 Context详解

10.4 Context树

10.5 使用Context取消多个协程

10.6 Context传值

10.7 Context使用原则

10.8 小结

第11章 并发模式:拿来即用的经验总结

11.1 for select循环模式

11.2 select timeout模式

11.3 流水线模式

11.4 扇出和扇入模式

11.5 Future模式

11.6 小结

第12章 并发技巧:高效并发安全的字节池

12.1 字节切片

12.2 高效字节池

12.3 使用BytePoolCap

12.4 BytePoolCap与sync.Pool的对比

12.5 小结

第三部分 深入理解Go语言

第13章 指针详解:什么情况下应该使用指针

13.1 什么是指针

13.2 指针的声明和定义

13.3 指针的操作

13.4 指针参数

13.5 指针接收者

13.6 什么情况下使用指针

13.7 小结

第14章 参数传递:值、引用以及指针的区别

14.1 修改参数

14.2 值类型

14.3 指针类型

14.4 引用类型

14.5 类型的零值

14.6 小结

第15章 内存分配:new和make该如何选择

15.1 变量

15.2 new函数

15.3 变量初始化

15.4 小结

第16章 运行时反射:字符串和结构体之间如何转换

16.1 什么是反射

16.2 获取对象的值和类型

16.3 ref lect.Value

16.4 ref lect.Type

16.5 字符串和结构体的互转

16.6 反射定律

16.7 小结

第17章 非类型安全:不安全但高效的unsafe

17.1 指针类型转换

17.2 unsafe.Pointer

17.3 uintptr指针类型

17.4 指针转换规则

17.5 unsafe.Sizeof

17.6 小结

第18章 零拷贝:slice为何如此高效

18.1 数组

18.2 slice

18.3 小结

第19章 实战:字符串如何高效拼接

19.1 一个例子

19.2 几种拼接方式

19.3 性能对比

19.4 拼接函数改造

19.5 再次进行性能测试

19.6 builder拼接慢在哪里

19.7 内存分配优化

19.8 小结

第四部分 Go语言工程管理

第20章 测试:质量保证的基石

20.1 单元测试

20.2 基准测试

20.3 小结

第21章 性能优化:如何写出高质量的代码

21.1 代码规范检查

21.2 性能优化

21.3 小结

第22章 协作开发:模块化管理

22.1 Go语言中的包

22.2 Go语言中的模块

22.3 小结

第五部分 Go语言泛型

第23章 初识泛型:使用泛型简化编程

23.1 一个非泛型示例

23.2 使用泛型重构示例

23.3 类型推导

23.4 自定义类型约束

23.5 内置的类型约束

23.6 函数式编程

23.7 小结

第24章 深入泛型:漫谈泛型设计

24.1 为什么需要泛型

24.2 类型参数

24.3 泛型类型

24.4 类型约束

24.5 再论类型推导

24.6 小结

结束语 你的Go语言成长之路

作者简介

打开Go语言之门:入门、实战与进阶是2022年由机械工业出版社出版,作者飞雪无情。

得书感谢您对《打开Go语言之门:入门、实战与进阶》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
云原生架构进阶实战 电子书

凝练云原生的核心思想和理念,通过讲述云原生敏捷基础架构构建过程和DevOps方法,并结合实际案例,为你展现云原生的实战场景和步骤。
R语言入门与实践 电子书

本书适合立志成为数据科学家的R语言初学者阅读。
分布式对象存储——原理、架构及Go语言实现 电子书

适读人群:本书适合从事云存储方面工作的工程师或架构师,也适合想要学习和实现分布式对象存储的读者。  赠送价值249元的云存储专家视频课程  掌握云存储理论,动手搭建分布式对象存...
Scratch编程入门与算法进阶(第2版) 电子书

Scratch是国际流行的图形化编程软件,使用者哪怕没有编程基础、不会编程语言,只要有清晰的思路,就可以通过拖曳各个功能模块的方式,设计出智能互动项目,轻松地把创意变成现实。本...
抖音运营2.0:进阶方法论与实战攻略 电子书

适读人群:抖音玩家,电商运营者,品牌运营者,营销人员编辑推荐抖音已经全面进入2.0时代,电商、直播、Vlog、网红等营销和变现模式不断更新换代。赶上2.0时代的风口红利,只有两...
数据分析从入门到进阶 电子书

透彻讲解Excel、SQL、Tableau、Python四项数据分析必会工具。
自然语言处理实战 电子书

实战自然语言处理及深度学习,涵盖基础知识与实际应用。