1. 系统性门路径,理念到实战无断!先剖析Go语言历史、设计哲学建立认知,再逐步讲解发环境、语法特性,通过实战项目与测试知识落地应用,形成完整学习闭环。 2. 全维度语法覆盖,新旧特性无遗漏!不仅囊括变量、常量、函数等基础语法,还深度解读并发、泛型等复杂特性,同步纳Go语言新加功能,助你掌握语言规范。 3. 保姆级教学讲解,抽象概念易理解!从变量、数据类型等基础概念手,延伸算法与现实世界抽象认知,清晰拆解Go应用运行逻辑,降低新手学习门槛。
售 价:¥
纸质售价:¥62.20购买纸书
6.3
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐

内容提要
前言
资源与支持
第1章 Go的那些事儿
1.1 Go的历史与现状
1.1.1 Go是怎样诞生的
1.1.2 从“三人行”到“众人拾柴”
1.1.3 Go是否值得我们学习
1.1.4 学习Go的最佳时机
1.2 Go的设计哲学
1.2.1 简单
1.2.2 显式
1.2.3 组合
1.2.4 并发
1.2.5 面向工程
1.3 本章小结
第2章 建立Go开发环境
2.1 选择Go版本
2.2 安装Go
2.2.1 使用安装包安装Go
2.2.2 使用预编译二进制包安装Go
2.2.3 使用go install命令安装Go
2.2.4 基于源码编译安装Go
2.2.5 安装和管理多个Go版本
2.3 配置Go
2.4 在线体验Go
2.5 本章小结
第3章 第一个Go程序
3.1 “hello, world”示例程序
3.1.1 创建helloworld文件夹
3.1.2 编写并运行第一个Go程序
3.2 Go程序的结构
3.3 编译Go程序
3.4 第一个Go module
3.5 本章小结
第4章 Go包、模块与代码组织结构
4.1 Go包
4.1.1 Go包的定义与导入
4.1.2 Go包的初始化函数
4.1.3 Go程序的编译单元
4.2 Go module
4.3 Go项目的代码组织结构
4.3.1 创世项目
4.3.2 社区共识
4.3.3 官方指南
4.4 本章小结
第5章 Go的依赖管理
5.1 Go依赖管理模式的演化
5.2 基于Go module的依赖管理
5.3 常见的Go module操作
5.3.1 添加依赖
5.3.2 升级/降级依赖的版本
5.3.3 添加一个主版本号大于1的依赖
5.3.4 升级依赖版本到一个不兼容版本
5.3.5 移除依赖
5.3.6 兼容vendor
5.3.7 替换依赖
5.4 本章小结
第6章 变量与类型
6.1 变量与类型的意义
6.2 变量声明
6.2.1 未显式赋予初值
6.2.2 变量声明块
6.2.3 省略类型信息的声明
6.2.4 短变量声明
6.2.5 包级变量的声明形式
6.2.6 局部变量的声明形式
6.3 变量的作用域
6.4 本章小结
第7章 基本数据类型
7.1 布尔类型
7.2 数值类型
7.2.1 整型
7.2.2 浮点类型
7.2.3 复数类型
7.3 字符串类型
7.3.1 原生支持字符串类型的好处
7.3.2 Go字符串的组成
7.3.3 Go字符串类型的内部表示
7.3.4 Go字符串类型的常见操作
7.4 本章小结
第8章 常量
8.1 常量基础
8.2 Go原生支持常量的好处
8.3 Go常量的创新
8.3.1 无类型常量
8.3.2 隐式转型
8.3.3 实现枚举
8.4 本章小结
第9章 复合数据类型
9.1 数组:同构静态复合类型
9.1.1 数组的基本特性
9.1.2 多维数组
9.2 切片:同构动态复合类型
9.2.1 切片基础
9.2.2 切片类型的实现
9.2.3 切片的扩容
9.3 map类型
9.3.1 map基础
9.3.2 map变量的声明和初始化
9.3.3 map的基本操作
9.3.4 map变量的传递开销
9.3.5 map的并发访问
9.4 结构体类型:建立对真实世界的抽象
9.4.1 定义一个新类型
9.4.2 定义结构体类型
9.4.3 结构体变量的声明与初始化
9.5 本章小结
第10章 指针类型
10.1 什么是指针类型
10.2 指向指针类型变量的指针
10.3 指针用途与使用限制
10.4 本章小结
第11章 控制结构
11.1 if语句
11.1.1 认识if语句
11.1.2 支持声明if语句的自用变量
11.1.3 if语句的“快乐路径”原则
11.2 for语句
11.2.1 for语句的经典使用形式
11.2.2 for range循环形式
11.2.3 带label的continue语句
11.2.4 break语句的使用
11.2.5 循环变量重用
11.3 switch语句
11.3.1 认识switch语句
11.3.2 switch语句的灵活性
11.3.3 type switch
11.4 本章小结
第12章 函数
12.1 Go函数基础
12.1.1 函数声明
12.1.2 函数参数
12.1.3 函数返回值
12.2 函数是“一等公民”
12.3 defer:简化函数实现
12.3.1 认识defer
12.3.2 使用defer的注意事项
12.4 本章小结
第13章 错误处理
13.1 Go的错误处理
13.1.1 Go的错误处理机制
13.1.2 错误值构造与检视
13.2 Go的异常处理
13.2.1 认识panic
13.2.2 如何应对panic
13.3 本章小结
第14章 方法
14.1 认识Go方法
14.1.1 方法的声明
14.1.2 方法的本质
14.2 选择receiver参数类型
14.2.1 receiver参数类型对Go方法的影响
14.2.2 选择receiver参数类型的原则
14.3 方法集合
14.3.1 为什么要有方法集合
14.3.2 方法集合的定义
14.3.3 选择receiver参数类型的第三个原则
14.4 类型嵌入模拟“实现继承”
14.5 本章小结
第15章 接口类型
15.1 接口类型基础
15.1.1 接口类型的定义
15.1.2 尽量定义“小接口”
15.2 接口类型的实现
15.2.1 接口的静态特性与动态特性
15.2.2 nil的error值不等于nil
15.2.3 接口类型变量的内部表示
15.3 使用接口时的注意事项
15.4 本章小结
第16章 并发编程
16.1 什么是并发
16.2 Go的并发方案
16.2.1 goroutine的基本用法
16.2.2 CSP并发模型
16.3 goroutine间的通信
16.3.1 作为“一等公民”的channel
16.3.2 channel与select结合使用的惯用法
16.4 本章小结
第17章 泛型
17.1 Go泛型设计演化简史
17.2 Go泛型语法
17.2.1 例子:返回切片中值最大的元素
17.2.2 类型参数
17.2.3 类型约束
17.3 本章小结
第18章 测试
18.1 Go测试框架
18.2 测试的组织
18.2.1 测试文件使用的包名
18.2.2 表驱动测试
18.2.3 最小测试单元
18.2.4 将顶层测试函数作为测试套件
18.2.5 将子测试视为测试用例
18.3 示例测试
18.4 测试覆盖率
18.5 性能基准测试
18.5.1 编写基准测试
18.5.2 并行执行的基准测试
18.5.3 建立性能基准
18.6 本章小结
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜