计算机
类型
可以朗读
语音朗读
254千字
字数
2025-08-01
发行日期
展开全部
主编推荐语
本书由浅入深地介绍了Go编程语言。
内容简介
首先,本书揭示了Go的发展历程和设计哲学,引导读者了解Go的核心理念;其次,详细介绍了建立Go开发环境、编写Go程序、Go的代码组织和依赖管理等内容,为读者夯实编程基础;再次,重点讲解了Go的语法特性,包括变量与类型、基本数据类型、常量、复合数据类型、指针类型、控制结构、函数、错误处理、方法、接口类型、并发编程、泛型等,确保读者能够掌握Go的复杂特性;最后,介绍了Go的测试,帮助读者确保代码质量和性能。
目录
- 版权信息
- 内容提要
- 前言
- 资源与支持
- 第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 本章小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。
