友情提示:380元/半年,儿童学编程,就上码丁实验室。
Go 语言是 Google 公司开发的一种静态型、编译型并自带垃圾回收和并发的编程语言。
Go 语言的风格类似于C语言。其语法在C语言的基础上进行了大幅的简化,去掉了不需要的表达式括号,循环也只有 for 一种表示方法,就可以实现数值、键值等各种遍历。因此,Go 语言上手非常容易。
很多读者表示自己是在看了介绍后才开始了解这门语言的,他们一般也会使用两到三门编程语言。Go 语言对于他们来说,也就是一到两天的熟悉过程,之后就可以开始使用 Go 语言解决具体问题了,大约一周左右已经可以使用 Go 语言完成既定的任务了。
Go 语言这种从零开始使用到解决问题的速度,在其他语言中是完全不可想象的。学过 C++ 的朋友都知道,一到两年大强度的理论学习和实战操练也只能学到这门语言的皮毛,以及知道一些基本的避免错误的方法。
那么,Go 语言到底有多么简单?下面从实现一个 HTTP 服务器开始了解。
HTTP 文件服务器是常见的 Web 服务之一。开发阶段为了测试,需要自行安装 Apache 或 Nginx 服务器,下载安装配置需要大量的时间。使用 Go 语言实现一个简单的 HTTP 服务器只需要几行代码,如下所示。
package main import ( "net/http" ) func main() { http.Handle("/", http.FileServer(http.Dir("."))) http.ListenAndServe(":8080", nil) }
下面是代码说明:
- 第 1 行,标记当前文件为 main 包,main 包也是 Go 程序的入口包。
- 第 3~5 行,导入 net/http 包,这个包的作用是 HTTP 的基础封装和访问。
- 第 7 行,程序执行的入口函数 main()。
-
第 8 行,使用 http.FileServer 文件服务器将当前目录作为根目录(
/
目录)的处理器,访问根目录,就会进入当前目录。 - 第 9 行,默认的 HTTP 服务侦听在本机 8080 端口。
把这个源码保存为 main.go(Go 语言的源文件后缀就是.go
),安装 Go 语言的开发包(后续我们会讲解如何安装),在命令行输入如下命令:
$ go run main.go
在浏览器里输入http://127.0.0.1:8080
即可浏览文件,这些文件正是当前目录在HTTP服务器上的映射目录。
Go 语言工程结构简单
Go 语言的源码无须头文件,编译的文件都来自于后缀名为.go
的源码文件。
Go 语言无须解决方案、工程文件和 Make File,只要将工程文件按照 GOPATH 的规则进行填充,即可使用 go build/go install 进行编译,编译安装的二进制可执行文件统一放在 bin 文件夹下。
后面的章节会介绍 GOPATH 及 go build/go install 的详细使用方法。
Go 语言编译速度快
Go 语言可以利用自己的特性实现并发编译,并发编译的最小元素是包。从 Go 1.9 版本开始,最小并发编译元素缩小到函数,整体编译速度提高了 20%。
另外,Go 语言语法简单,具有严谨的工程结构设计、没有头文件、不允许包的交叉依赖等规则,在很大程度上加速了编译的过程。