#90DaysOfDevOps - 解释 Hello World 代码 - 第九天
解释 Hello World 代码
Go是如何工作的
在第八天,我们完成了Go在工作站上的安装,同时创建了第一个Go程序。
在这节,我们将更深入学习这些代码,了解更多Go语言的内容。
什么是编译?
在开始Hello World的6行代码之前,我们需要对编译有一些了解。
像Python、Java、Go和C++这类我们常用的编程语言都是高级语言(high-level languages)。这意味着它们是可以被人们直接阅读的。但当机器想去执行一个程序时,它需要将这些语言转换成机器能读懂的形式。而这个将人类能读懂的代码翻译成机器码的过程被成为编译(compiling)。
从上图可以看到,我们在第八天做的事情。我们创建了一个简单的Hello World程序main.go,然后使用go build main.go
命令去将它编译成可执行文件。
什么是包(packages)?
包(package),是在同一目录下编译到一起的源文件的集合。我们可以简单理解为,一个包是同一目录下的一堆*.go文件。还记得第八天的Hello文件夹吗?当你去学习更复杂的Go程序时,你可能会发现你有多个包含.go文件的文件夹(folder1, folder2和folder3...),所以你的程序是由多个包构成的。
因此,我们可以通过使用包来复用别人的代码,并且不必将所有东西从头开始写。或许我们希望程序中有一个计算功能,你可能找到一个现成的、可以被导入的、包含了数学计算的Go包。长远来看,这种做法可以为你节省大量时间和精力。
Go鼓励你将代码组织成不同的包,从而方便后续复用和维护。
逐行来看Hello #90DaysOfDevOps
让我们去到Hello文件夹里的main.go文件并看看每行在做什么。
在第一行,package main
声明了这个文件属于一个叫main的包。所有的.go文件都需要被归属到一个包里,它们的开头会有package something
的字样。
一个包可以任意命名。我们称main
为这个包中的程序的起点,这是一个规则。(我需要更多地了解这条规则吗?)
每当我们想要编译并运行代码时,我们都要告诉机器从那里开始执行。于是我们会编写一个叫main的函数。机器将会寻找名叫main的函数作为程序的入口。
函数是一个可以在整个程序中使用的、执行特定任务的代码块。
你可以使用func
声明任意名称的函数,只是在我们的例子中,我们需要命名main
作为代码的起始点。
接下来到第3行,import意味着你要在main程序里引入另一个包。fmt是Go提供的一个标准包,里边包含了将在第六行使用的Println()
函数。也有很多标准库可以被应用在你的程序中,利用或重用它们可以省去你从头写起的麻烦。Go的标准包
这里的Println()
是一个将标准输出写入终端的一个方法,当程序被成功执行,信息将会被打印出来。你可以随意更改括号里的内容。
总结
- 第1行 = 这个文件位于名为
main
的包中,因为其中包含程序的入口main
,所以被称为main
。 - 第3行 = 我们要导入fmt包后再在第六行使用
Println()
。 - 第5行 = 实际的入口,
main
函数。 - 第6行 = 这将在我们的系统上打印"Hello #90DaysOfDevOps"。
相关资料
- StackOverflow 2021 Developer Survey
- Why we are choosing Golang to learn
- Jake Wright - Learn Go in 12 minutes
- Techworld with Nana - Golang full course - 3 hours 24 mins
- NOT FREE Nigel Poulton Pluralsight - Go Fundamentals - 3 hours 26 mins
- FreeCodeCamp - Learn Go Programming - Golang Tutorial for Beginners
- Hitesh Choudhary - Complete playlist
第十天见。