互联网
类型
可以朗读
语音朗读
250千字
字数
2025-08-01
发行日期
展开全部
主编推荐语
一本系统讲解Go语言开发的实用教程。
内容简介
本书从环境搭建到高级特性,循序渐进地引导读者掌握Go编程。首先介绍Go的基础类型、复合类型及流程控制结构,帮助读者建立语言基础;接着深入函数、指针、接口等核心概念,结合实例解析泛型、错误处理等进阶内容;还详细阐述模块与包的管理,以及Go工具集的使用,涵盖开发全流程。
书中示例丰富,注重实践,通过具体代码演示语法要点与编程范式,同时强调Go的设计哲学与最佳实践,如接口隐式实现、错误显式处理等。
目录
- 版权信息
- 本书赞誉
- 本书赞誉
- 推荐序一
- 推荐序二
- 推荐序三
- 译者序
- 前言
- 第1章 设置你的Go环境
- 1.1 安装Go工具
- 1.2 你的第一个Go程序
- 1.3 选择你的工具
- 1.4 Makefile文件
- 1.5 Go兼容性承诺
- 1.6 保持更新
- 1.7 练习
- 1.8 总结
- 第2章 基础类型和变量声明
- 2.1 基础类型
- 2.2 var与:=的区别
- 2.3 使用const
- 2.4 有类型常量和无类型常量
- 2.5 未使用的变量
- 2.6 命名变量和常量
- 2.7 练习
- 2.8 总结
- 第3章 复合类型
- 3.1 数组类型——因不灵活而较少被使用
- 3.2 切片类型
- 3.3 字符串、字符和字节
- 3.4 映射类型
- 3.5 结构体类型
- 3.6 练习
- 3.7 总结
- 第4章 代码块、影子变量和控制结构
- 4.1 代码块
- 4.2 影子变量
- 4.3 if语句
- 4.4 for语句
- 4.5 switch语句
- 4.6 goto语句
- 4.7 练习
- 4.8 总结
- 第5章 函数
- 5.1 声明和调用函数
- 5.2 函数也是值
- 5.3 闭包
- 5.4 defer
- 5.5 Go语言的值传递
- 5.6 练习
- 5.7 总结
- 第6章 指针
- 6.1 快速指针入门
- 6.2 不畏惧指针
- 6.3 指针表示可变参数
- 6.4 指针是最后的手段
- 6.5 指针传递的性能
- 6.6 零值与无值的区别
- 6.7 映射与切片的区别
- 6.8 切片作为缓冲区
- 6.9 减少垃圾回收的负担
- 6.10 垃圾回收器调优
- 6.11 练习
- 6.12 总结
- 第7章 类型、方法和接口
- 7.1 语言中的类型
- 7.2 方法
- 7.3 iota有时用于枚举
- 7.4 使用内嵌进行组合
- 7.5 内嵌不是继承
- 7.6 接口概览
- 7.7 接口是类型安全的鸭子类型
- 7.8 内嵌与接口
- 7.9 接收接口,返回结构体
- 7.10 接口和nil
- 7.11 接口是可比较的
- 7.12 空接口
- 7.13 类型断言和type-switch
- 7.14 谨慎使用类型断言和type-switch
- 7.15 函数类型实现接口
- 7.16 隐式接口实现依赖注入
- 7.17 Wire
- 7.18 Go并非传统意义上的面向对象语言
- 7.19 练习
- 7.20 总结
- 第8章 泛型
- 8.1 泛型减少重复代码并增强类型安全性
- 8.2 在Go中引入泛型
- 8.3 泛型函数抽象算法
- 8.4 泛型和接口
- 8.5 使用类型术语指定运算符
- 8.6 类型推断与泛型
- 8.7 类型元素限制常量
- 8.8 结合泛型函数与泛型数据结构
- 8.9 关于可比性的更多信息
- 8.10 被省略的事物
- 8.11 习惯性的Go语言和泛型使用
- 8.12 向标准库添加泛型
- 8.13 解锁未来特性
- 8.14 练习
- 8.15 总结
- 第9章 错误处理
- 9.1 如何处理错误:基础知识
- 9.2 使用字符串创建简单错误
- 9.3 哨兵错误
- 9.4 错误也是值
- 9.5 包装错误
- 9.6 包装多个错误
- 9.7 Is和As
- 9.8 使用defer包装错误
- 9.9 panic与recover
- 9.10 从错误中获取栈跟踪
- 9.11 练习
- 9.12 总结
- 第10章 模块、包和导入
- 10.1 仓库、模块和包
- 10.2 使用go.mod
- 10.3 创建包
- 10.4 使用模块
- 10.5 发布模块
- 10.6 对模块进行版本控制
- 10.7 模块代理服务器
- 10.8 附加细节
- 10.9 练习
- 10.10 总结
- 第11章 Go工具集
- 11.1 使用go run构建并执行
- 11.2 使用go install添加第三方工具
- 11.3 使用goimports改进导入格式
- 11.4 使用代码质量静态分析工具
- 11.5 使用govulncheck扫描存在漏洞的依赖项
- 11.6 嵌入内容到程序中
- 11.7 嵌入隐藏文件
- 11.8 使用go generate
- 11.9 使用go generate和Makefile
- 11.10 在Go二进制文件内读取构建信息
- 11.11 为其他平台构建Go二进制文件
- 11.12 使用构建标签
- 11.13 测试Go的版本
- 11.14 使用go help了解有关Go工具的更多信息
- 11.15 练习
- 11.16 总结
- 第12章 Go中的并发性
- 12.1 何时使用并发
- 12.2 协程
- 12.3 通道
- 12.4 select
- 12.5 并发实践和模式
- 12.6 何时使用互斥锁而不是通道
- 12.7 原子操作——你可能不需要这些
- 12.8 关于并发的更多学习资源
- 12.9 练习
- 12.10 总结
- 第13章 标准库
- 13.1 io家族
- 13.2 时间
- 13.3 encoding/json
- 13.4 net/http
- 13.5 结构化日志
- 13.6 练习
- 13.7 总结
- 第14章 context
- 14.1 什么是context
- 14.2 值
- 14.3 取消
- 14.4 带有截止时间的context
- 14.5 在代码中取消context
- 14.6 练习
- 14.7 总结
- 第15章 编写测试
- 15.1 测试的基本知识
- 15.2 表格驱动测试
- 15.3 并发运行测试
- 15.4 检查代码覆盖率
- 15.5 模糊测试
- 15.6 使用基准测试
- 15.7 Go中的测试桩
- 15.8 httptest
- 15.9 集成测试和构建标签
- 15.10 使用数据竞争检测器检查并发问题
- 15.11 练习
- 15.12 总结
- 第16章 恶龙禁区:反射、unsafe和cgo
- 16.1 反射:运行时类型处理
- 16.2 unsafe意味着不安全
- 16.3 cgo用于集成而非性能优化
- 16.4 练习
- 16.5 总结
- 关于作者
- 关于封面
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。
