Go语言代码的结构组成
硅谷创业之父保罗·格雷厄姆在《黑客与画家》中提到,软件工程师与画家、建筑师、作家一样,也是创造者。一个好的程序,不仅仅是技术的产物,更是技术与艺术相结合的产物。每个程序都有其自身的结构,而结构又深深地影响着程序的效率,毋庸置疑,程序的结构是功能与效率的承担者。
下面通过《第一个Go语言程序》一节中的 Hello World 程序来了解Go语言的基本结构。
第 2 行 import "fmt" 中 import 语句用于导入该程序所依赖的包。由于本示例程序中用到了 Println() 函数,而该函数属于 fmt 包,所以需要导入 fmt 包,fmt 包实现了格式化 I/O(输入/输出)。
第 3 行 func main() 是程序入口。所有Go语言函数都是以关键字 func 开头的,每一个可执行程序都必须包含一个 main() 函数,这个 main() 函数通常是程序启动后第一个执行的函数,如果有 init() 函数则会先执行 init() 函数。
第 4 行 /*...*/ 是程序的注释,在程序执行时,注释的部分将被程序忽略,不会执行。
第 5 行 fmt.Println(...) 用来将字符串输出到控制台,并在最后自动增加一个换行字符
除此之外,还有以下几点值得注意:
声明:《Go系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
下面通过《第一个Go语言程序》一节中的 Hello World 程序来了解Go语言的基本结构。
package main import "fmt" func main() { /*输出"Hello World!"*/ fmt.Println("Hello World!") }第 1 行 package main 定义了包名。必须在源文件中非注释的第 1 行指明这个文件属于哪个包,例如 package main。package main 表示一个可独立执行的程序,每个Go语言应用程序都需要包含一个名为 main 的包,并且该包中包含一个名为 main() 的函数(该函数是Go语言可执行程序的执行起点,既不能带参数,也不能定义返回值)。
第 2 行 import "fmt" 中 import 语句用于导入该程序所依赖的包。由于本示例程序中用到了 Println() 函数,而该函数属于 fmt 包,所以需要导入 fmt 包,fmt 包实现了格式化 I/O(输入/输出)。
第 3 行 func main() 是程序入口。所有Go语言函数都是以关键字 func 开头的,每一个可执行程序都必须包含一个 main() 函数,这个 main() 函数通常是程序启动后第一个执行的函数,如果有 init() 函数则会先执行 init() 函数。
第 4 行 /*...*/ 是程序的注释,在程序执行时,注释的部分将被程序忽略,不会执行。
第 5 行 fmt.Println(...) 用来将字符串输出到控制台,并在最后自动增加一个换行字符
\n
。使用 fmt.Print("Hello, World!\n") 也会得到相同的结果。除此之外,还有以下几点值得注意:
- 只有 package 名称为 main 的包可以包含 main() 函数;
- 一个可执行程序有且仅有一个 main 包;
- 通过 import 关键字来导入其他非 main 包;
- 可以通过 import 关键字导入单个包,也可以同时导入多个包。
声明:《Go系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。