搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Go语言学习指南(惯例模式与编程实践原书第2版)
0.00     定价 ¥ 149.00
图书来源: 浙江图书馆(由浙江新华配书)
此书还可采购15本,持证读者免费借回家
  • 配送范围:
    浙江省内
  • ISBN:
    9787111791454
  • 作      者:
    作者:(美)乔恩·博德纳|责编:王春华|译者:邵帅//于鑫蕾//任照松
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2025-10-01
收藏
畅销推荐
内容介绍
Go语言已迅速成为构建Web服务的首选语言。市面上有大量教程,但向具备其他编程语言经验的开发者传授Go语言的语法,仅靠这些教程还远远不够,因为它们并未教授Go语言的惯用写法,导致开发者最终往往会套用在Go语言环境中毫无意义的代码模式。而本实用指南将为你提供必要的背景知识,助你编写清晰、地道的Go语言代码。 无论你拥有何种程度的开发经验,都能通过本书学会以Go开发者的思维模式思考。作者Jon Bodner不仅介绍了资深Go开发者所采用的设计模式,还深入探讨了使用这些模式的根本原因。相较上一版,本书还新增了一章内容,专门讲解Go语言工具集。 本书将帮助你: 编写地道的Go语言代码并设计Go语言项目。 理解Go语言各项设计决策背后的原因。 为个人开发者或开发团队搭建Go语言开发环境。 学习如何以及何时使用反射(reflection)、unsafe与cgo。 探究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 总结
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证