现在,让我们通过创建一个简单的示例,开启我们的go学习旅程,并学习如何编译和执行go程序。打开你最喜欢的文本编辑器,输入以下代码:
package main
func main() {
println("it's over 9000!")
}
将文件保存为main.go
,对于简单的例子,我们不需要深入到go的工作空间中。
接下来,打开一个命令行终端,进入main.go
文件所在的目录。对我来说,我是输入了cd ~/code
。
最后,键入以下命令运行这段程序:
go run main.go
如果程序正常运行,你应该会看到输出it's over 9000!
。
但这是如何实现编译呢?为了方便起见,go run
会先编译然后再运行你的代码,它会在一个临时的目录下编译这段代码,然后执行,最后自动清除生成的临时文件。通过运行以下命令你可以看见这个临时文件的位置:
go run --work main.go
如果你只想编译代码,使用go build
:
go build main.go
这会生成一个可执行文件main
,你可以直接运行它。在linux/osx中,不要忘记在可执行文件前面加上点和反斜杠,所以你需要输入./main
运行程序。
希望你能理解我们刚刚执行的代码,我们定义了一个函数,并调用了内置函数println
输出一个字符串。难道仅因为这里只有一个选择,所以go run
知道执行什么吗?不是的,在go语言中,程序的入口是main
包中的main
函数。
我们在后面的章节中会专门介绍包的相关内容,现在,我们暂时专注于理解go语言的基础知识,所以我们一直在main
包中编写代码。
如果你愿意,你也可以改变代码并改变包的名字,并使用go run
去执行,你会得到一个错误信息。然后,将包名改成main
,但是函数名不叫main
,再次运行代码,你会得到一个不同的错误信息。使用go build
进行相同的操作,注意编译代码时,这里没有运行代码的入口点。这是很正常的,例如当你编译一个库时。