1. 概述
Go是一种开源编程语言,旨在提高程序员的生产力,可轻松构建简单,可靠和高效的软件。
Go富有表现力,简洁、整洁且高效。它的并发机制使编写的程序可以轻松地从多核和网络计算机中获得最大收益,而其新颖的类型系统则可以实现灵活的模块化程序构建。Go可以快速编译为机器代码,有垃圾回收的便利性和运行时反射的功能。它是一种快速的、静态类型的编译语言,但感觉上就像是一种动态类型的解释语言。
2. 安装
下载和安装Go编译器、工具和库非常简单,官方提供了针对各系统的安装包。MacOS及Linux还可以使用二进制包或源码编译安装。
3. 第一个Go程序
3.1 Hello World
依照惯例,让我们从一个“Hello World”开始:
package main
import "fmt"
func main() {
fmt.Println("Hello World")
}
在上述代码中:
我们用package关键字,将本文件定义成名为main的包。每个 Go 程序都是由包构成,且从main包开始执行。
然后用import关键字,导入了fmt包。该包是 Go 的一个标准库,包含一些I/O格式化函数。
最后,我们定义了一个main函数。在package main中,必须包含一个main函数,Go 会自动调用该函数。在main函数中,我们调用了fmt包用的Println函数,打印了字符串“Hello World”。需要注意,Println函数的首字母是大写形式的。在 Go 语言规范中:当标识符(常量、变量、类型、函数名、结构字段等)以大写字母开头(如:Println),那么该标识符对象可以被包外的代码所用(导入该包后),这被称为“导出”(类似向对象语言中的 public);标识符如果以小写字母开头,则只能在包内使用(类似向对象语言中的 private)。
另外,除main函数外,还可以定义一个可选的初始化函数init。init函数和main函数都不能有入参和返回值。Go 会先调用init函数,再调用main函数。init函数可定义多个,但推荐只用一个。
3.2 编译 & 运行
现在,将上述代码保存为hello-world.go文件。然后使用go run命令执行该文件:
$ go run hello-world.go
如果代码没有问题,输出如下:
Hello World
除直接运行外,我们还可以使用go build命令来编译文件:
$ go build hello-world.go
编译后,会在同目录下生成一个名为hello-world可执行文件。可以通过./hello-world执行该文件,执行后效果与go run hello-world.go命令执行文件相同。
注意:以上示例演示环境基于MacOS,在 Windows 系统中编译生成文件有所不同,会生成hello-world.exe。
上面示例中,我们使用的go命令,该命令会随Go环境安装而安装。更多关于go命令的使用,请go --help参考其帮助文件。
