编写您的第一个Go程序——Hello World!
1.1、Go简介
Go语言是 Google 在2007年开发的一种开源编程语言,其主要设计目标是兼具 Python 等动态语言的开发速度和 C/C++ 等编译型语言的运行效率和安全性。
2009年11月10日,Google Open Source Blog 向全球发布了这款程序编程语言。
Go 语言经常被称为 "Golang",根据官方的说法,这是因为最初无法注册到 "go.org" 这个域名,而只好使用了 "golang.org" 这个域名,但也许是因为在各个搜索引擎中心关键词 "Go" 的搜索结果比较混乱。
1.1.1 Go语言历史
对语言进行评估时,明白设计者的动机以及语言要解决的问题很重要。
Go语言的设计者都是计算机科学领域的重量级人物。Go 的三个作者分别是:Robert Griesemer(罗伯特.格利茨默),Rob Pike(罗伯派克)和 Ken Thompson(肯.汤普森)。
-
- Robert 在开发 Go 之前是 Google V8、Chubby 和 HotSpot JVM 的主要贡献者;
- Rob 主要是 Unix、UTF-8、plan9 的作者
- Ken 主要是 B 语言、C 语言的作者、Unix 之父。
这些计算机科学领域的重量级人物设计 Go 语言的初衷是满足 Google 的需求。设计此语言花费了两年的时间,融入了整个团队多年的经验及对编程语言设计的深入认识。设计团队借鉴了 Pascal、Oberon 和 C 语言的设计智慧,同时让 Go 语言具备动态语言的便利性。因此 Go 语言体现了经验丰富的计算机科学家的语言设计理念,是为全球最大的互联网公司之一设计的。Go 语言的所有设计者都说,设计 Go 语言是因为 C++ 给他们带来了挫败感。在 Google I/O 2012 的 Go 设计小组见面会上,Rob Pike 是这样说的:
"我们做了大量的C++开发,厌烦了等待编译完成,尽管这是玩笑,但在很大程度上说也是事实。"
您无需知道 Go 语言的设计历史就可以使用它。您只需要知道,Go 语言的设计和实现体现了多位计算机专家多年的经验以及对其他编程语言优缺点的深入认识。因 C++ 的不良体验而出现的 Go 语言是一门现代编程语言,可用来创建性能卓越的 Web 服务器和系统程序。
1.1.2 Go是编译型语言
Go使用编译器来编译代码。编译器将源代码编译成二进制(或字节码)格式;在编译代码时,编译器检查错误、优化性能并输出可在不同平台上运行的二进制文件。要创建并运行 Go 程序,程序员必须执行如下步骤:
1、使用文本编辑器创建 Go 程序;
2、保存文件;
3、编译程序;
4、运行编译得到可执行文件
1.2、编写第一个Go程序
现在该来编写著名的 Hello World 程序了!我默认你已经安装好 Go,现在需要有个文本编辑器就可以创建 Go 程序了。如果您还没有喜欢的文本编辑器,可考虑使用 Sublime、Textmate、Notepad++、Atom、Vim、Emacs 等。至于哪款文本编辑器最好,程序员们就此争论得非常激烈,但如果您是新手,选择您用得顺手的编辑器就好。Go 对文本编辑器没有特殊要求,因此如果您只是想尝试一下 Go,使用操作系统提供的默认文本编辑器就可以了。
1.2.1 使用 go run 编译并运行程序
编译并运行文件是开发过程中的一个常见步骤,Go 提供了完成这个步骤的快捷途径。使用下面的命令编译并运行程序:
不同于 go build,go run 不会创建可执行的文件。在开发 Go 代码时,go run 提供了一种便利的方式,因为没有必要将编译和执行步骤分开。另外也不需要运行 go clean 来清除可执行文件。
1.3 Go 的吉祥物
Go 编程语言有一个吉祥物!在会议、文档页面和博文中,大多会包含下图所示的 Go Gopher,这是才华横溢的插画家 Renee French 设计的,她也是 Go 设计者之一 Rob Pike 的妻子。
1.4 小结
本章介绍了 Go 语言的设计值以及他们设计 Go 语言的动机。并编写和运行了 Go 的一个 Hello World 程序;还了解了命令 go run 以及 Go Gopher。
1.5 问与答
问:既有的语言很多,为何还要设计 Go 语言?
答:设计 Go 语言是因为 Java 和 C++ 等传统语言繁琐、缓慢而难以理解。Go 语言的设计者借鉴了 Python 动态类型语言的优点,旨在打造一款易用于使用并可用于开发高流量生产系统的语言。
问:编译器生成的可执行文件很大,但源代码文件很小。为何会这样?
答:在编译器生成的二进制文件中,必须包含执行程序所需的一切。者带来的缺点是二进制文件比源文件大,但优点是无须安装依赖就能运行程序。
问:该使用命令 go build 还是 go run?
答:在开发阶段,推荐使用命令 go run;程序开发完毕,可以分享时,建议使用 go build。