Go语言从入门到进阶实战(视频教学版)

Go语言从入门到进阶实战(视频教学版)

暂无评价综合评分的显示会考虑用户真实性等多项因素,每部作品出现综合评分的时间不定。
6.629 评价豆瓣读书

作品简介

本书采用“理论+实例”的形式编写,通过大量的实例,结合作者多年的一线开发实战经验,全面介绍了Go语言的语法及使用方法。全书秉承方便学习,易于理解,便于查询的理念,无论是想系统学习Go语言基础知识的初学者,还是想进阶提高的有经验的开发人员,都能通过本书迅速掌握Go语言的各种基础语法和开发技巧。本书作者曾经与慕课网合作录制相关的视频课程,拥有丰富的视频制作经验,所以特意为本书精心录制了详细的配套教学视频,这将极大地提升读者的学习效率,比同类图书取得更好的学习效果。另外,本书还免费提供了书中所有实例源程序,为读者的学习提供便利。

徐波,游戏行业从业十余年,资深全栈游戏开发者,慕课网讲师,开源爱好者(github.com/davyxu),众多Gopher之一。2009年创立“战魂小筑博客”,自2012年开始接触Go语言,开源项目cellnet以及tabtoy导表工具,深受业内好评,并广为流传。

作品目录

  1. 配套学习资源
  2. 前言
  3. 第1章 初识Go语言
  4. 1.1 Go语言特性
  5. 1.2 使用Go语言的项目
  6. 1.3 怎样安装Go语言开发包
  7. 1.4 搭建开发环境
  8. 第2章 Go语言基本语法与使用
  9. 2.1 变量
  10. 2.2 数据类型
  11. 2.3 转换不同的数据类型
  12. 2.4 指针
  13. 2.5 变量生命期——变量能够使用的代码范围
  14. 2.6 字符串应用
  15. 2.7 常量——恒定不变的值
  16. 2.8 类型别名(Type Alias)
  17. 第3章 容器:存储和组织数据的方式
  18. 3.1 数组——固定大小的连续空间
  19. 3.2 切片(slice)——动态分配大小的连续空间
  20. 3.3 映射(map)——建立事物关联的容器
  21. 3.4 列表(list)——可以快速增删的非连续空间的容器
  22. 第4章 流程控制
  23. 4.1 条件判断(if)
  24. 4.2 构建循环(for)
  25. 4.3 示例:九九乘法表
  26. 4.4 键值循环(for range)——直接获得对象的索引和数据
  27. 4.5 分支选择(switch)——拥有多个条件分支的判断
  28. 4.6 跳转到指定代码标签(goto)
  29. 4.7 跳出指定循环(break)——可以跳出多层循环
  30. 4.8 继续下一次循环(continue)
  31. 第5章 函数(function)
  32. 5.1 声明函数
  33. 5.2 函数变量——把函数作为值保存到变量中
  34. 5.3 示例:字符串的链式处理——操作与数据分离的设计技巧
  35. 5.4 匿名函数——没有函数名字的函数
  36. 5.5 函数类型实现接口——把函数作为接口来调用
  37. 5.6 闭包(Closure)——引用了外部变量的匿名函数
  38. 5.7 可变参数——参数数量不固定的函数形式
  39. 5.8 延迟执行语句(defer)
  40. 5.9 处理运行时发生的错误
  41. 5.10 宕机(panic)——程序终止运行
  42. 5.11 宕机恢复(recover)——防止程序崩溃
  43. 第6章 结构体(struct)
  44. 6.1 定义结构体
  45. 6.2 实例化结构体——为结构体分配内存并初始化
  46. 6.3 初始化结构体的成员变量
  47. 6.4 构造函数——结构体和类型的一系列初始化操作的函数封装
  48. 6.5 方法
  49. 6.6 类型内嵌和结构体内嵌
  50. 6.7 示例:使用匿名结构体分离JSON数据
  51. 第7章 接口(interface)
  52. 7.1 声明接口
  53. 7.2 实现接口的条件
  54. 7.3 理解类型与接口的关系
  55. 7.4 示例:便于扩展输出方式的日志系统
  56. 7.5 示例:使用接口进行数据的排序
  57. 7.6 接口的嵌套组合——将多个接口放在一个接口内
  58. 7.7 在接口和类型间转换
  59. 7.8 空接口类型(interface{})——能保存所有值的类型
  60. 7.9 示例:使用空接口实现可以保存任意值的字典
  61. 7.10 类型分支——批量判断空接口中变量的类型
  62. 7.11 示例:实现有限状态机(FSM)
  63. 第8章 包(package)
  64. 8.1 工作目录(GOPATH)
  65. 8.2 创建包package——编写自己的代码扩展
  66. 8.3 导出标识符——让外部访问包的类型和值
  67. 8.4 导入包(import)——在代码中使用其他的代码
  68. 8.5 示例:工厂模式自动注册——管理多个包的结构体
  69. 第9章 并发
  70. 9.1 轻量级线程(goroutine)——根据需要随时创建的“线程”
  71. 9.2 通道(channel)——在多个goroutine间通信的管道
  72. 9.3 示例:Telnet回音服务器——TCP服务器的基本结构
  73. 9.4 同步——保证并发环境下数据访问的正确性
  74. 第10章 反射
  75. 10.1 反射的类型对象(reflect.Type)
  76. 10.2 反射的值对象(reflect.Value)
  77. 10.3 示例:将结构体的数据保存为JSON格式的文本数据
  78. 第11章 编译与工具
  79. 11.1 编译(go build)
  80. 11.2 编译后运行(go run)
  81. 11.3 编译并安装(go install)
  82. 11.4 一键获取代码、编译并安装(go get)
  83. 11.5 测试(go test)
  84. 11.6 性能分析(go pprof)——发现代码性能问题的调用位置
  85. 第12章 “避坑”与技巧
  86. 12.1 合理地使用并发特性
  87. 12.2 反射:性能和灵活性的双刃剑
  88. 12.3 接口的nil判断
  89. 12.4 map的多键索引——多个数值条件可以同时查询
  90. 12.5 优雅地处理TCP粘包
  91. 第13章 实战演练——剖析cellnet网络库设计并实现Socket聊天功能
  92. 13.1 了解cellet网络库特性、流程及架构
  93. 13.2 管理TCP Socket连接
  94. 13.3 组织接收和发送数据流程的Socket会话(Session)
  95. 13.4 排队处理事件的事件队列(EventQueue)
  96. 13.5 消息编码(codec)——让cellnet支持消息的多种编码格式
  97. 13.6 消息元信息(MessageMeta)——消息ID、消息名称和消息类型的关联关系
  98. 13.7 接收和发送封包(packet)
  99. 13.8 使用cellnet网络库实现聊天功能
载入中

大家都喜欢