## Go语言简介 Go语言(或 Golang)起源于 2007 年,并在 2009 年正式对外发布。Go 是非常年轻的一门语言,它的主要目标是“兼具`Python`等动态语言的开发速度和 `C/C++`等编译型语言的性能与安全性”。**Go语言没有类和继承的概念**,所以它和`Java`或 `C++ `看起来并不相同。**但是它通过接口(interface)的概念来实现多态性**。Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之说。因此可以说Go语言是一门混合型的语言。 此外,很多重要的开源项目都是使用Go语言开发的,其中包括`Docker`、`Go-Ethereum、Thrraform` 和 `Kubernetes`。 >Go语言出自 Ken Thompson 和 Rob Pike、Robert Griesemer 之手,他们都是计算机科学领域的重量级人物。 ## Go语言的特性 * 语法简单 其语法类似于C语言,同时又融合了其他编程语言的优点 * 并发模型 Goroutine 是 Go 最显著的特征。它用类协程的方式来处理并发单元,却又在运行时层面做了更深度的优化处理。这使得语法上的并发编程变得极为容易,无须处理回调,无须关注线程切换,仅一个关键字,简单而自然。可以说Go语言为并发而生 * 内存分配 将一切并发化固然是好,但带来的问题同样很多。如何实现高并发下的内存分配和管理就是个难题。好在 Go 选择了 tcmalloc,它本就是为并发而设计的高性能内存分配组件。 * 静态链接 编写完Go项目程序后,只需要编译成目标操作系统的可执行文件,即可在对应的平台上执行,无须依赖任何运行库。 * 生态圈 Go语言有着丰富的标准库,这些功能完善、质量可靠的内置标准库为开发者提供了极大的便利,比如在微服务领域中广泛使用的明星产品有Docker、nsq、etcd等。