Golang 执行流程分析
- 如果是对源码编译之后,在执行,Go的执行流程如下图:
- 如果我们是对源码直接执行 go run 源码,Go的执行流程如下图:
两种执行流程的区别
- 如果我们先编译生成了可执行文件,那么我们可以将该可执行文件拷贝到没有Go开发环境的机器上,仍然可以运行。
- 如果我们是直接 go run 源代码,那么如果需要在另一台机器上运行,也需要go开发环境,否则无法执行。
- 在编译时,编译器会将程序运行依赖的库文件包含在可执行文件中,所以可执行文件变大了很多。
编译和运行说明
编译
- 有了 go 源文件,通过编译器将其编译成机器可以识别的二进制文件。
- 在该文件目录下,通过go build 对 hello.go 文件进行编译。可以指定生成的可执行文件,在windows 下必须是 .exe后缀。
- 如果程序没有错误,没有任何提醒,会在当前目录下会出现一个可执行文件,该文件是二进制码文件,也是可以执行的程序。
- 如果程序有错误,编译时,会在错误的那行报错。
运行
- 直接运行生成的可执行 Go程序,比如hello.exe
- 通过运行工具 go run 对可执行文件进行运行
Go 程序开发注意事项
- Go源文件以go为扩展名
- Go应用程序的执行入口是main()方法
- Go语言严格区分大小写
- Go方法由一条条语句构成,每个语句后不需要分号,这也体现出Golang的简洁性
- Go编译器是一行一行进行编译的,因此我们一行就写一条语句,不能把多条语句写在同一行,否则会报错
- go语言定义的变量或者import的包如果没有使用到,代码不能编译通过
- 大括号都是成对出现,缺一不可