小苏子
小苏子PDF在线图书

Go语言核心编程 作者:李文塔

Go语言核心编程 作者:李文塔

Go语言核心编程 出版社:电子工业出版社

Go语言核心编程 内容简介

Go语言核心编程 目录

Go语言的核心语言特性包括:类型系统、接口、并发。这三部分是Go语言精华、优美、也是重要的特征,本书紧密围绕这三个主题展开。以“类型系统”为例,Go语言中的类型有:简单类型、复合类型、命名类型、未命名类型、静态类型、动态类型、底层类型、接口类型、具体类型以及类型字面量等诸多概念,这些概念在其他Go类图书里面鲜有介绍,本书试图帮助读者梳理清楚这些类型的含义,建立概念,认清类型本质并学会正确使用;在接口章节,不单介绍了接口概念和用法,还深入分析了接口的机制,使读者对Go语言非侵入式的接口有更深入的理解;在并发编程章节,书中给出了5个并发编程范式,并用图描述并发程序的模型,通俗易懂,这也是本书读特点。此外本书还拿出一整章内容介绍Go语言编程过程中可能遇到的陷阱,不仅告诉读者陷阱是什么,正确使用方式是什么,同时也给出出现这种问题的根本原因,使读者后续能够避免犯同样的错误。本书最后从哲学角度论述下Go语言的编程思想,相信Go语言爱好者一定可以从书中找到自己感兴趣内容。第1章 基础知识1.1 语言简介1.1.1 Go语言的诞生背景1.1.2 语言特性1.1.3 Go语言的特性1.1.4 总结1.2 初识Go程序1.3 Go词法单元1.3.1 token1.3.2 标识符1.3.3 操作符(operators)和分隔符(delimiters)1.3.4 字面常量1.3.5 总结1.4 变量和常量1.4.1 变量1.4.2 常量1.5 基本数据类型1.5.1 布尔类型1.5.2 整型1.5.3 浮点型1.5.4 复数类型1.5.5 字符串1.5.6 rune类型1.6 复合数据类型1.6.1 指针1.6.2 数组1.6.3 切片1.6.4 map1.6.5 struct1.7 控制结构1.7.1 if语句1.7.2 switch语句1.7.3 for语句1.7.4 标签和跳转第2章 函数2.1 基本概念2.1.1 函数定义2.1.2 多值返回2.1.3 实参到形参的传递2.1.4 不定参数2.2 函数签名和匿名函数2.2.1 函数签名2.2.2 匿名函数2.3 defer2.4 闭包2.4.1 概念2.4.2 闭包的价值2.5 panic和recover2.5.1 基本概念2.5.2 使用场景2.6 错误处理2.6.1 error2.6.2 错误和异常2.7 底层实现2.7.1 函数调用规约2.7.2 汇编基础2.7.3 多值返回分析2.7.4 闭包底层实现第3章 类型系统3.1 类型简介3.1.1 命名类型和未命名类型3.1.2 底层类型3.1.3 类型相同和类型赋值3.1.4 类型强制转换3.2 类型方法3.2.1 自定义类型3.2.2 方法3.3 方法调用3.3.1 一般调用3.3.2 方法值(method value)3.3.3 方法表达式(method expression)3.3.4 方法集(method set)3.3.5 值调用和表达式调用的方法集3.4 组合和方法集3.4.1 组合3.4.2 组合的方法集3.5 函数类型第4章 接口4.1 基本概念4.1.1 接口声明4.1.2 接口初始化4.1.3 接口方法调用4.1.4 接口的动态类型和静态类型4.2 接口运算4.2.1 类型断言(Type Assertion)4.2.2 类型查询(Type Switches)4.2.3 接口优点和使用形式4.3 空接口4.3.1 基本概念4.3.2 空接口的用途4.3.3 空接口和nil4.4 接口内部实现4.4.1 数据结构4.4.2 接口调用过程分析4.4.3 接口调用代价4.4.4 空接口数据结构第5章 并发5.1 并发基础5.1.1 并发和并行5.1.2 goroutine5.1.3 chan5.1.4 WaitGroup5.1.5 select5.1.6 扇入(Fan in)和扇出(Fan out)5.1.7 通知退出机制5.2 并发范式5.2.1 生成器5.2.2 管道5.2.3 每个请求一个goroutine5.2.4 固定worker工作池5.2.5 future模式5.3 context标准库5.3.1 context的设计目的5.3.2 基本数据结构5.3.3 API函数5.3.4 辅助函数5.3.5 context的用法5.3.6 使用context传递数据的争议5.4 并发模型5.4.1 CSP简介5.4.2 调度模型5.4.3 并发和调度第6章 反射6.1 基本概念6.1.1 基本数据结构和入口函数6.1.2 基础类型6.1.3 类型汇总6.2 反射规则6.2.1 反射API6.2.2 反射三定律6.3 inject库6.3.1 inject是什么6.3.2 依赖注入和控制反转6.3.3 inject实践6.3.4 inject原理分析6.4 反射的优缺点6.4.1 反射的优点6.4.2 反射的缺点6.4.3 反射的最佳实践第7章 语言陷阱7.1 多值赋值和短变量声明7.1.1 多值赋值7.1.2 短变量的声明和赋值7.2 range复用临时变量7.3 defer陷阱7.4 切片困惑7.4.1 数组7.4.2 切片7.5 值、指针和引用7.5.1 传值还是传引用7.5.2 函数名的意义7.5.3 引用语义7.6 习惯用法7.6.1 干净与强迫症7.6.2 comma,ok表达式7.6.3 简写模式7.6.4 包中的函数或方法设计7.6.5 多值返回函数第8章 工程管理8.1 编程环境8.1.1 环境搭建8.1.2 工程结构8.1.3 交叉编译8.2 命名空间和作用域8.2.1 命名空间8.2.2 作用域8.2.3 变量覆盖8.3 包的基本概念8.3.1 基本概念8.3.2 包引用8.3.3 包加载8.4 第三方包管理8.4.1 vendor8.4.2 dep第9章 编程哲学9.1 Go语言设计哲学9.1.1 少即是多9.1.2 世界是并行的9.1.3 组合优于继承9.1.4 非侵入式的接口9.1.5 总结9.2 Go语言发展史9.2.1 站在巨人的肩膀上9.2.2 里程碑9.3 未来9.3.1 争议9.3.2 Go 2

赞(0)
未经允许不得转载:小苏子图书 » Go语言核心编程 作者:李文塔