展开全部

主编推荐语

一本系统讲解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、科普以及教材、教辅等领域。