Go 语言介绍
Go 语言是什么
2009 年 11 月 10 日,Go 语言正式成为开源编程语言家庭的一员。
Go 语言(或简称 Golang)是云计算时代的 C 语言。Go 语言的诞生是为了让程序员有更高的生产效率,Go 语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。
开发人员在为项目选择语言时,不得不在快速开发和性能之间做出选择。C 和 C++ 这类语言提供了很快的执行速度,而 Ruby 和 Python 这类语言则擅长快速开发。Go 语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让开发更快速。
Go 语言优势
- 可以直接编译成机器码,不依赖其他库,glibc 的版本有一定要求,部署就是扔一个文件上去就完成了。
- 静态类型语言,但是有动态语言的感觉,静态类型的语言就是可以在编译的时候检查出来隐藏的大多数问题,动态语言的感觉就是有很多的包可以使用,写起来的效率很高。
- 语言层面支持并发,这个就是 Go 最大的特色,天生的支持并发。Go 就是基因里面自持的并发,可以充分的利用多核,很容易的使用并发。
- 内置 runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GO(内存垃圾回收机制)不算完美,但是足以应付我们所能遇到的大多数问题,特别是 Go 1.1 之后的 GC。
- 简单易学,Go 语言的作者都有 C 的基因,那么 Go 自然而然就有了 C 的基因,那么 Go 关键字是 25 个,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。
- 丰富的标准库,Go 目前已经内置了大量的库,特别是网络库非常强大。
- 内置强大的工具,Go 语言里面内置了很多工具链,最好的应该是 gofmt 工具,自动化格式化代码,能够让团队 review 变得如此的简单,代码格式一模一样,想不一样都很困难。
- 跨平台编译,如果你写的 Go 代码不包含 cgo,那么就可以做到 windows 系统编译 linux 的应用,如何做到的呢?Go 引用了 plan9 的代码,这就是不依赖系统的信息。
- 内嵌 C 支持,Go 里面也可以直接包含 C 代码,利用现有的丰富的 C 库。
Go 适合用来做什么
- 服务器编程,以前你如果使用 C 或者 C++ 做的那些事情,用 Go 来做很合适,栗如处理日志、数据打包、虚拟机处理、文件系统等。
- 分布式系统,数据库代理器等。
- 网路编程,这一块目前应用最广,包括 Web 应用、API 应用、下载应用。
- 内存数据库,如 Google 开发的 groupcache、couchbase 的部分组建。
- 云平台,目前国外很多云平台在采用 Go 开发,CloudFoundy 的部分组件,前 VMware 技术总监自己出来搞得 apcera 云平台。
环境搭建
安装和设置
Getting Started
标准命令概述
Go 语言