# 引言
go被创建成一种系统语言(比如,操作系统和设备驱动),go是针对C/C++开发者的。据go核心开发组说,我可以确定是真的,应用程序开发者已经成为主要的go语言用户,而不是系统开发者。为什么呢?我不能代表所有的系统开发人员,但是,对于构建网站、服务和桌面应用等而言,主要归结于一类新兴系统的需求,这类系统介于低级系统应用和高级系统应用之间。
可能go语言有消息传递机制、带缓存、重计算数据分析、命令行接口、日志或监控,我不知道给go语言什么样的标签,但是在我的职业生涯中,由于系统持续增长的复杂性和成千上万种常用的并发方式,很明显,定制基础设施系统,是一个不断增长的需求。你可以用ruby或python或别的语言建立这样的系统(好多人这么做),但是这类系统受益于更严格类型系统和更高性能。同样地,你可以用go语言构建网站(也有好多人这么做),但是话又说回来,我还是喜欢通过表达性更强的Node或Ruby来实现这样的系统。
go语言还擅长于其他的领域。比如,当运行一个编译过的go程序时,它没有依赖性。你不必担心用户是否安装了ruby或者jvm,而且如果是这样,还要考虑是什么版本。出于这个原因,go作为命令行界面程序和其他并发类型应用程序的开发语言(例如日志收集),变得越来越流行。
坦白地说,学习go语言可以有效的利用你的时间。你不必花大量的时间去学习或者掌握它,你从你的努力中最终会得到一些实用的东西。
## 作者注解
据我说知,前面这些章节,我不能再做出相同的假设。你花多长时间学习接受并理解它,这是个新的概念。比起go语言拥有的接口,其他人家是否需要更多?最终,如果你告诉我本书那些地方太浅或者太详细,考虑到这本书的价值,我会感到欣慰。
## 链接
作者博客: [海涛的博客](http://blog.geeknr.com)
- 关于本书
- 引言
- 准备工作
- 安装开发环境
- 开始使用Go
- 创建一个Go模块
- 第1章:基础知识
- 1.1 编译
- 1.2 静态类型
- 1.3 类c语法
- 1.4 垃圾回收
- 1.5 运行go代码
- 1.6 导入包
- 1.7 变量和声明
- 1.8 函数声明
- 1.9 继续之前
- 第2章:语法学习
- 2.1 声明和初始化
- 2.2 结构体上的函数
- 2.3 构造函数
- 2.4 new
- 2.5 结构体字段
- 2.6 组合
- 2.7 指针类型和值类型
- 2.8 继续之前
- 第3章:复杂类型
- 3.1 数组
- 3.2 切片
- 3.3 映射
- 3.4 指针类型和值类型
- 3.5 继续之前
- 第4章:面向对象
- 4.1 包
- 4.2 接口
- 4.3 继续之前
- 第5章:综合知识
- 5.1 错误处理
- 5.2 defer
- 5.3 go语言风格
- 5.4 初始化的if
- 5.5 空接口和转换
- 5.6 字符串和字节数组
- 5.7 函数类型
- 5.8 内存分配
- 第6章:高并发
- 6.1 go协程
- 6.2 同步
- 6.3 通道
- 6.4 继续之前
- 第7章:工具库
- 7.1 类型转换
- 7.2 时间操作
- 第8章:程序测试
- 单元测试
- 性能测试
- 第9章:简单实例
- 内存分配
- 第10章:项目实战
- 结论
- 附录