Golang 语言简称 go,语言设计的简洁且高效,甚至被认为设计的非常节制,2007 年由 Ken Thompson、Rob Pike、Robert Griesemer 发明,go 语言 2009 年开源,2012 年发布了第一个正式版。
1. Ken Thompson 就是发明 Unix 和 C 语言的大神,还设计了 UTF-8编码。
2. Rob Pike 也是贝尔实验室的成员,参与了 UTD-8 的设计,协助开发了 Plan9、Inferno、Limbo 等,是 Go 语言项目的总负责人。
3. Robert Griesemer 参与了 Java HotSpot 虚拟机开发,负责 Google V8 Javascript 引擎代码生成,对语言设计非常在行。
Go 语言的 logo 是 Rob Pike 的妻子 Renee French 设计的,她是一位才华横溢的插画家。
Go 吸收了众多语言的思想,比如函数式、匿名函数、闭包、携程,推荐使用消息来进行并发编程,内置语法级别的并发特性,特别适用于高性能和分布式领域(系统、存储、网络、游戏、Web、云原生等)。
Go 语言还支持交叉编译,完全支持 UTF-8 编程(字符串使用 UTF-8 编码、源文件格式直接使用 UTF-8 编码保存),在 Go 语言之前 C++ 执行快编译不理想,.NET 和 Java 编译速度很快但是执行效率不高,Go 语言做到了高效编译、高效执行,而且上手难度低,易于开发。
现在一线很多大厂都在使用 go 语言进行系统开发,相对于老牌儿的 C/C++/Java 等编程语言,虽然 go 还很年轻,但随着 go 语言的不断改进和相关生态的完善,使用 go 来构建项目和团队越来越多,Docker、K8S、Etcd、Codis、Consul、Terraform 都是 go 语言开发的,go 1.5 以后实现了自举,去掉了 C 的部分完全用 go 自己来开发。
Go 语言是编译型的而且自带编译器,它的 hello world 版本如下:
package main
import (
"fmt"
)
func main () {
fmt.Println("hello world")
}
将文件保存为 main.go,运行 go run main.go 即可看到 hello world,如果你的系统还没有 go 命令,请立即翻看下一个章节。
本章节的代码