这本书从整体的写作风格来说,会以介绍 Go 语言特性为主,示例则尽量采用作者平常的实践,而不是一个没有太大实际意义的语法示范样例。
本书作者背景极强,许式伟为原金山WPS首席架构师、曾是盛大创新院研究员,目前是国内Go语言实践圈子公认的Go语言专家。参与本书写作的几位作者都是实际用Go语言开发的项目的开发人员,有较强的实战经验。
本书以介绍Go语言特性为主,示例则尽量采用作者开发团队平常的实践,内容涉及内存管理(堆和栈)、错误处理、OOP、并发编程等关键话题。 这本书面向的读者是所有打算用Go语言的开发者,主要包括目前使用C、C++、Java、C#的开发人员,甚至一些Python、PHP开发人员也可能转为 Go 程序员。
序 为什么我们需要一门新的语言?
第1章 初识Go语言
1.1 Go语言简史
1.2 语言特性
1.3 “Hello, world!”
1.4 编译环境
1.5 开发工具
1.6 工程管理
1.7 问题追踪和调试
1.8 如何寻求帮助
本章小结
第2章 顺序编程
2.1 变量、常量和类型
2.1.1 变量
2.1.2 常量
2.1.3 类型
2.2 流程控制
2.2.1 条件语句
2.2.2 选择语句
2.2.3 循环
2.2.4 跳转语句
2.3 函数
2.3.1 函数调用
2.3.2 不定参数
2.3.3 多返回值
2.3.4 匿名函数与闭包
2.4 错误处理
2.4.1 error接口
2.4.2 defer
2.4.3 panic和recover
本章小结
第3章 面向对象编程
3.1 类型系统
3.1.1 给类型添加方法
3.1.2 值语义和引用语义
3.2 结构体
3.2.1 初始化
3.2.2 匿名组合
3.2.3 成员可访问性
3.3 接口
3.3.1 其他语言中的接口
3.3.2 非侵入式接口
3.3.3 接口赋值
3.3.4 接口查询
3.3.5 类型查询
3.3.6 Any类型
本章小结
第4章 工程管理
4.1 Go命令行工具
4.2 代码风格
4.3 工程组织
4.4 单元测试
4.5 文档管理
4.6 工程构建
4.7 包的管理与分发
4.8 跨平台开发
4.8.1 Go语言的跨平台能力
4.8.2 交叉编译
4.8.3 Android支持
本章小结
第5章 并发编程
5.1 初识Goroutine
5.1.1 基本用法
5.1.2 Goroutine通信
5.2 Channel
5.2.1 基本用法
5.2.2 关闭
5.2.3 变量的传递
5.2.4 单向Channel
5.2.5 超时处理
5.3 多核并行化
5.4 同步机制
5.4.1 sync包简介
5.4.2 同步锁
5.4.3 Once类型
本章小结
第6章 网络编程
6.1 HTTP编程
6.1.1 客户端编程
6.1.2 开发HTTP服务器
6.2 JSON
6.2.1 JSON简介
6.2.2 编码
6.2.3 解码
6.2.4 未知类型的解码
6.2.5 流式读写
6.3 网站开发
6.3.1 一个最简单的网站
6.3.2 开发一个相册网站
6.3.2.1 新建工程
6.3.2.2 实现网络服务
6.3.2.3 网页模板渲染
6.3.2.4 缓存
6.3.2.5 错误处理
6.3.2.6 防止程序崩溃
6.3.2.7 资源分离
6.3.2.8 重构
6.4 更多资源
本章小结
第7章 进阶话题
7.1 Go语言中的内存管理
7.2 反射
7.3 语言交互性CGO
7.4 链接符号
7.5 Goroutine实现机制
7.6 接口的奥秘
本章小结
第8章 开发工具
8.1 Go语言开发工具
8.2 gEdit
8.3 Goclipse - 使用Eclipse开发和调试Go程序
8.4 VIM
8.5 Nodepad++,Windows上的Go开发环境搭建
8.6 GolangIDE
本章小结
附录 Go语言包参考
《编写高质量代码:改善Python程序的91个建议》内容简介:在通往“Python技术殿堂”的路上,本书将为你编写健壮、优雅、高质量的Py
《零基础学算法 第3版》内容简介:本书分为上、下两篇,共10章。上篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想
《超人气网站是这样建成的》通过通俗易懂的语言、趣味十足的插图和实用性的讲解,描述了运作一个成功网站所需的关键知识,涵盖了
《深入分析GCC》内容简介:本书将围绕GCC编译过程,详细介绍从源代码到AST、从AST到GIMPLE、从GIMPLE到RTL,以及从RTL到最终的目标
《西城追忆·抗战西城》内容简介:2015年初,西城区档案局(馆)与西城区文物研究所合作出版的《西城追忆·文物保护专辑》,深受各
《超越CSS:Web设计艺术精髓(修订版)》系统、深入地阐释了网站的设计与实现,帮助读者从设计的角度来使用CSS以达到完美的效果。作
《在人间》内容简介:1906年,高尔基对一位知名出版人说:“我有许多写作计划,而且正在考虑写自传。”此后,他多次表示想写自传。
《沟通:用故事产生共鸣》是全世界最具影响力的演说大师的扛鼎之作。《沟通:用故事产生共鸣》从设计的理念和角度阐述演说艺术、技
《Z世代营销》内容简介:《Z世代营销》是Z世代之母和Z世代研究专家的扛鼎之作。通过很多采访和案例,让大家了解生于1990-2010年之间
TakeYourDigitalContentintoRealTimewithQuartzComposer!ApplesQuartzComposermakesit...
各位,下一個最好的投資機會,不在於股票、債券或房地產,而是原物料,也就是我們日常生活基本所需的大宗物資。聰明的投資人已經
这本乔布斯唯一授权的官方传记,在2011年上半年由美国出版商西蒙舒斯特对外发布出版消息以来,备受全球媒体和业界瞩目,这本书的
《玩转Django 2.0》内容简介:本书是一本Python Web的技术总结,主要以Python 3和Django 2.0版本实现。通过本书的学习,读者能够透
Java和Android开发学习指南-(第2版) 本书特色 本书是java语言学习指南,特别针对使用java进行android应用程序开发展开了详细介绍。全书共...
《无人机摄影与摄像从新手到高手》内容简介:本书根据20万学员喜欢的无人机摄影技巧,由两位资深的航拍摄影师分五部分内容编写而成
《二十国集团与全球数字经济包容发展》内容简介:自中国在2016年G20杭州峰会发起对数字经济的讨论以来,G20数字经济磋商机制已走过
情感计算与情感机器人系统 本书特色 《情感计算与情感机器人系统》在介绍情感计算、情感建模以及人机情感交互概念的基础上,分析了当前人机情感交互的研究前沿,总结了在...
您想源源不断地汲取创作灵感并极大地提高工作效率吗?《中文版PhotoshopCS5技法精粹:以假乱真的艺术(第6版)》将助您实现这一梦
《加速MATLAB编程指南:CUDA实现》内容简介:MATLAB是广泛应用的算法开发语言之一。然而,MATLAB简单易用的特性与算法复杂性的矛盾
《博弈论:每个人都能成为决策高手》内容简介:这是一本关于博弈论的入门书。蒋文华认为一个高度联结的社会必然是一个充满博弈的社