Go语言开发实战(慕课版)
上QQ阅读APP看书,第一时间看更新

1.5.1 Go语言的结构组成

硅谷创业之父保罗·格雷厄姆在《黑客与画家》中提到,软件工程师与画家、建筑师、作家一样,也是创造者。一个好的程序,不仅仅是技术的产物,更是技术与艺术相结合的产物。每个程序都有其自身的结构,而结构又深深地影响着程序的效率,毋庸置疑,程序的结构是功能与效率的承担者。下面通过一个简单的Hello World程序了解Go语言的基本结构。

第1行package main定义了包名。必须在源文件中非注释的第1行指明这个文件属于哪个包,如package main。package main表示一个可独立执行的程序,每个Go应用程序都需要包含一个名为main的包,并且该包包含一个叫main()的函数(该函数是Go可执行程序的执行起点,既不能带参数,也不能定义返回值)。

第2行import "fmt",import语句用于导入该程序所依赖的包。由于本示例程序用到了Println()函数,所以需要导入该函数所属的fmt包。fmt包实现了格式化IO(输入/输出)。

第3行func main()是程序入口。所有Go函数以关键字func开头,每一个可执行程序都必须包含main()函数,通常是程序启动后第一个执行的函数,如果有init()函数则会先执行init()函数。

第4行 /*...*/ 是注释,代表在程序执行时,这部分代码将被忽略。

第5行fmt.Println(...),将字符串输出到控制台,并在最后自动增加换行字符\n。使用fmt.Print("Hello, World!\n")也会得到相同的结果。

除此之外,还有以下几点值得注意。

(1)只有package名称为main的包可以包含main()函数。

(2)一个可执行程序有且仅有一个main包。

(3)通过import关键字来导入其他非main包。

(4)可以通过import关键字单个导入,也可以同时导入多个。